美文网首页
Log4j日志的基础配置及使用

Log4j日志的基础配置及使用

作者: 好多可乐 | 来源:发表于2019-06-25 00:13 被阅读0次

    log4j是一个用Java编写的可靠,快速和灵活的日志框架(API),它在Apache软件许可下发布。 Log4j已经被移植到了C,C++,C#,Perl,Python和Ruby等语言中。
    Log4j是高度可配置的,并可通过在运行时的外部文件配置。它根据记录的优先级别,并提供机制,以指示记录信息到许多的目的地,诸如:数据库,文件,控制台,UNIX系统日志等。

    一,到Log4j官网下jar包,并把jar包放在External Libraries下目录下

    https://logging.apache.org/log4j/2.x/download.html

    二,配置log4j.properties

    在source文件夹下面新建log4j.properties文件,这个不用记,保存一遍就可以一直用啦。
    输出日志级别从高到低:error > warn > info > debug

    ###根logger设置:相当于全局配置,如果底下的自定义配置和这里的全局配置都有日志输出级别的配置,优先输出级别更高的###
    log4j.rootLogger = INFO,console,file
    
    ### 输出信息到控制台配置:第一个表示的是日志的附加器。第二个是输出的对象,这里有system.out,还有比如system.err之类的。第三个表示展示的方式。第四个是输出信息到控制台的级别。最后一个是日志展示格式。
    最后一行的%p表示日志输出级别,%l表示输出日志的位置,包括类名,发生的线程等,%m表示message,%n表示换行,%d表示时间###
    log4j.appender.console = org.apache.log4j.ConsoleAppender
    log4j.appender.console.Target = System.out
    log4j.appender.console.layout = org.apache.log4j.PatternLayout
    log4j.appender.console.Threshold = INFO
    log4j.appender.console.layout.ConversionPattern = [%p] %d{yyyy-MM-dd HH:mm:ss} method: %l----%m%n
    
    ###保存日志文件配置:第二行是日志保存的配置,第三行表示是否追加(新日志是否追加到后面等),第四行表示设置的日志级别,这里是warn,故在e盘里,保存的日志是warn级别及以上的###
    log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
    log4j.appender.file.File = E:/log/web.log
    log4j.appender.file.Append = true
    log4j.appender.file.Threshold = warn 
    log4j.appender.file.layout = org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} method: %l - [ %p ]----%m%n
    

    我们可以写个文件测试一下

    import org.apache.log4j.Logger;
    
    public class Test {
        // 传入当前类的名称
        private static Logger logger = Logger.getLogger("Test.class");
    
        public static void main(String[] args) {
            logger.info("这是info信息");
            logger.error("这是error信息");
            logger.warn("这是warn信息");
            logger.debug("这是debug信息");
    
        }
    }
    
    

    这个在控制台输出的就是INFO级别的日志,因为我们在上面配置了,输出结果如下:

    [INFO] 2019-07-01 00:01:30 method: com.java.lesson10.test.log4j.Test.main(Test.java:10)----这是info信息
    [ERROR] 2019-07-01 00:01:30 method: com.java.lesson10.test.log4j.Test.main(Test.java:11)----这是error信息
    [WARN] 2019-07-01 00:01:30 method: com.java.lesson10.test.log4j.Test.main(Test.java:12)----这是warn信息
    

    注意:
    当局部变量和全局变量都设置的日志输出级别,我们就需要对比局部变量和全局变量的输出等级,哪个输出级别高就输出哪个。比如我在局部变量设置的debug,在全局变量设置了info,info>debug,输出的时候就会输出info级别及以上的日志。

    相关文章

      网友评论

          本文标题:Log4j日志的基础配置及使用

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