log4j 日志书写格式_LOG

一、日志

1.日志的作用

记录程序的运行过程,便于分析

2.为什么要使用日志工具, 而不是直接打印或写到本地文件中?

不方便 代码写的多, 效果还不好

3.现在市面上常用的日志工具

jdk-logging

log4j :  commons-logging 是规范  lo4j是实现

logback : slf4j 是规范 logback是实现

4.日志划分不同等级的原因是什么?

目的是为了让我们在不同的情况下使用不同的方法,然后在配置文件中可以方便的设置要输入的内容

5.需要记得标签

appender : 定义输出的目的地

encoder : 定义日志的格式

rollingPolicy : 定义滚动策略

filter : 过滤日志级别

logger : 定义日志的范围

root : 一个特殊的logger

二、Java自带的工具Logger

1.示例代码

public static void main(String[] args) {

//获取日志类

Logger logger = Logger.getGlobal();

//7个级别

logger.severe("严重信息");

logger.warning("警告信息");

logger.info("普通信息");

logger.config("参数信息");

logger.fine("详细的");

logger.finer("更详细的");

logger.finest("极其详细的");

}

输出结果

二月 06, 2020 6:25:24 下午 com.loong.TestDemo main

严重: 严重信息

二月 06, 2020 6:25:24 下午 com.loong.TestDemo main

警告: 警告信息

二月 06, 2020 6:25:24 下午 com.loong.TestDemo main

信息: 普通信息

注意事项

这里我们会发现,我们的代码中有七行日志, 但是结果中只有3个.

原因 :

级别的顺序是 off > SEEVERE > WARNING > INFO > CONFIG > FINE > FINER > FINEST > all

java的配置中有关于日志的默认级别设定, 默认是INFO, 只有INFO和比INFO级别大的才能输出.

三、Log4j(实现)+Commons-Logging(一种规范)

1.导入依赖

项目中添加 Log4j和Commons-Logging的依赖

commons-logging

commons-logging

1.2

log4j

log4j

1.2.17

2.基本使用

基本API

package com.qianfeng;

import org.apache.log4j.Logger;

public class MyService2 {

Logger logger = Logger.getLogger(MyService2.class);

public void function(){

logger.trace("详细信息");

logger.debug("测试信息");//1

logger.info("普通信息");//1

logger.warn("警告信息");

logger.error("错误信息");//1

logger.fatal("严重错误");

}

}

3.配置信息

定义配置文件log4j.xml

%M 输出所在类的方法名

%m 我们要写的信息

dc7c2591aebe

配置文件

/p>

"http://org/apache/log4j/xml/log4j.dtd">

value="%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n"/>  //%m 我们要写的信息

//时间滚动模式

//日期时间滚动模式

value="%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n"/>

四、SLF4j(一种规范) + Logback(实现)

1. 导入依赖

项目中导入依赖

ch.qos.logback

logback-classic

1.2.3

2. 基本使用

Logback+SLF4J 基本API

import org.junit.Test;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import sun.rmi.runtime.Log;

public class HelloLog {

// 需要输出日志的类,可以创建一个log属性

Logger log = LoggerFactory.getLogger(HelloLog.class);

@Test

public void test1(){

System.out.println(log.getClass());

log.trace("hello trace");

log.debug("hello debug");

log.info("hello info");

log.warn("hello warn");

log.error("hello error");

// 注意,logback中没有fatal日志

}

}

3 .配置信息

dc7c2591aebe

配置文件

value="%d{yyyy-MM-dd HH:mm:ss.SSS} |-[%-5p] in %logger.%M[line-%L] -%m%n"/>

debug

${CONSOLE_LOG_PATTERN}

UTF-8

${log.path}/hello2.log

${CONSOLE_LOG_PATTERN}

${log.path}/hello.log

${CONSOLE_LOG_PATTERN}

UTF-8

${log.path}/hello-%d{yyyy-MM-dd}.%i.log

class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

8kb

1

总结

1、日志的作用

记录程序的运行过程, 便于分析

2、为什么要使用日志工具, 而不是直接打印或写到本地文件中?

不方便 代码写的多, 效果还不好

3、现在市面上常用的日志工具

jdk-logging

log4j :  commons-logging 是规范  lo4j是实现

logback : slf4j 是规范 logback是实现

4、需要记得标签

appender : 定义输出的目的地

encoder : 定义日志的格式

rollingPolicy : 定义滚动策略

filter : 过滤日志级别

logger : 定义日志的范围

root : 一个特殊的logger

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值