美文网首页
log4j的使用

log4j的使用

作者: cccccttttyyy | 来源:发表于2018-08-28 16:23 被阅读0次

    1. 导入包

    spring boot中默认日志工具logback使用log4j需要在pom中做如下修改。

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion> 
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j</artifactId>
    </dependency>
    

    在src/main/resources目录下加入log4j.properties配置文件

    其他java工程

    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    

    2.小例子

    一共有6个级别 TRACE DEBUG INFO WARN ERROR FATAL

    获取日志对象

    static Logger logger = Logger.getLogger(MyTestLog4j.class);
    

    进行默认配置

    BasicConfigurator.configure();
    

    设置日志输出级别

    logger.setLevel(Level.DEBUG);
    

    不同级别日志输出

    logger.trace("跟踪信息");
    logger.debug("调试信息");
    logger.info("输出信息");
    Thread.sleep(1000);
    logger.warn("警告信息");
    logger.error("错误信息");
    logger.fatal("致命信息");
    

    demo代码

    public class TestLog4j {
        static Logger logger = Logger.getLogger(TestLog4j.class);
        public static void main(String[] args) throws InterruptedException {
            BasicConfigurator.configure();
            logger.setLevel(Level.DEBUG);
            logger.trace("跟踪信息");
            logger.debug("调试信息");
            logger.info("输出信息");
            Thread.sleep(1000);
            logger.warn("警告信息");
            logger.error("错误信息");
            logger.fatal("致命信息");
     
        }
    }
    
    image.png

    3. 配置解析

    在src目录下添加log4j.properties文件
    编写类似如下配置

    #设置日志输出的等级为debug,低于debug就不会输出了
    #设置日志输出到两种地方,分别叫做 stdout和 R  名称不固定 可以自定义
    log4j.rootLogger=debug, stdout, R
    
      #分类输出com.didispace包下的日志
      #log4j.category.com.didispace=DEBUG, didifile
    
      #对ERROR级别输出到特定的日志文件中
      #log4j.logger.error=errorfile
    
    #第一个地方stdout, 输出到控制台
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    #log4j.appender.appender.layout=org.apache.log4j.TTCCLayout
    #输出格式是 %5p [%t] (%F:%L) - %m%n
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
    # 第二个地方R, 以滚动的方式输出到文件,文件名是example.log,文件最大100k, 最多滚动5个文件
    log4j.appender.R=org.apache.log4j.RollingFileAppender
    log4j.appender.R.File=example.log
    log4j.appender.R.MaxFileSize=100KB
    log4j.appender.R.MaxBackupIndex=5
    #输出格式是 %p %t %c - %m%n
    log4j.appender.R.layout=org.apache.log4j.PatternLayout
    
    log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
    
      #log4j.appender.file.DatePattern='.'yyyy-MM-dd
      #log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
    

    采用指定配置文件 配置文件名为log4j.properties log4j.xml等 不需要写这一句

    PropertyConfigurator.configure("log4j.properties");
    

    打印格式

    log4j日志输出格式一览:

    %c 输出日志信息所属的类的全名
    %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
    %f 输出日志信息所属的类的类名
    %l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
    %m 输出代码中指定的信息,如log(message)中的message
    %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
    %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
    %r 输出自应用启动到输出该日志信息所耗费的毫秒数
    %t 输出产生该日志事件的线程名
    

    %5p [%t] (%F:%L) - %m%n 就表示
    宽度是5的优先等级 线程名称 (文件名:行号) - 信息 回车换行


    image.png image.png

    相关文章

      网友评论

          本文标题:log4j的使用

          本文链接:https://www.haomeiwen.com/subject/vyfqwftx.html