slf4j+log4j输出日志

log4j是一个日志输出的具体实现,而slf4j是一个日志输出框架的api接口,是一个规范;

示例:

引入maven依赖:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.21</version>
</dependency>

配置log4j的配置文件:

log4j.rootLogger=INFO,console
log4j.additivity.org.apache=true
#console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=INFO
log4j.appender.console.ImmediateFlush=true
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%p] %m%n

代码使用:

public class Main {

    public static void main(String[] args) {
        new Test().test();
    }
}

class Test {
    //final Logger log = Logger.getLogger(Test.class);
    Logger log = (Logger) LoggerFactory.getLogger(Test.class);
    public void test() {
        //log.info("hello this is log4j info log");
        log.info("hello, my name is {}", "chengyi");
    }
}
 
 
log4j.rootLogger = [ level ] , appenderName, appenderName, …

level:日志级别,默认有七个级别,但是一般常用的是四个级别,从到到底依次是error、warn、info、debug

appenderName:日志的输出目的地,log4j提供以下几种:

org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)


配置信息的格式布局,格式为:

log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1

log4j.appender.appenderName.layout.option = valueN

log4j默认的布局:

 org.apache.log4j.HTMLLayout(以HTML表格形式布局),
 org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
 org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),

 org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

打印格式化:

%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921

%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

%m输出代码中指定的消息

猜你喜欢

转载自blog.csdn.net/chengkui1990/article/details/80974905
今日推荐