zoukankan      html  css  js  c++  java
  • Java日志框架总结

    一直以来对java中的日志框架比较模糊,现在特意来总结一下啦!!!!

    常用的日志组件:

    名称 jar 描述
    log4j                                     log4j-1.2.17.jar 早期常用日志框架
    logback logback-core、logback-classic、logback-access

    一套日志组件的实现,性能优于log4j(slf4j阵营)

    log4j2 log4j、log4j-api、log4j-core apache开发的一款Log4j的升级产品
    java.util.logging jdk Java1.4以来的官方日志实现,无需第三方依赖

    提问:

      如果让你开发一个类似spring框架,你会采用哪个组件?

    发现哪个都不能选,只能基于应用实际使用的日志组件来。不然就会日志打印多份。怎么找到应用实际使用的日志组件 JCL(Apache Commons Loging)解决了这个问题。

      <!--这个是jcl包-->
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.2</version>
            </dependency>
            <!--当加入了log4j包时,就会用log4j打印-->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>

    log4j.properties 文件内容

    log4j.appender.console=org.apache.log4j.ConsoleAppender
    log4j.appender.console.layout=org.apache.log4j.PatternLayout
    log4j.appender.console.layout.ConversionPattern=%d{HH:mm:ss,SSS} [%p] [%c] - %m%n
    log4j.rootCategory=debug,console

    SLF4j:全称Simple Logging Facade for Java(简单日志门面),与jcl类似,本身不提供日志具体实现,只对外提供接口或者门面。与commons loging不同的是其采用在classPath

    加入桥接jar包来表示具体采用哪种实现。

    maven中slf4j使用

    1、pom.xml中引用

     <!-- log -->
            <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.25</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>1.7.25</version>
                <!-- <scope>test</scope> -->
            </dependency>

     2.日志配置log4j.properties

    log4j.rootLogger=debug,CONSOLE,FILE
    log4j.addivity.org.apache=true
    
    # 应用于控制台
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
    log4j.appender.CONSOLE.Threshold=INFO
    log4j.appender.CONSOLE.Target=System.out
    log4j.appender.CONSOLE.Encoding=UTF-8
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
    log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
    
    # 每天新建日志
    log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.A1.File=D:/log4j/log
    log4j.appender.A1.Encoding=UTF-8
    log4j.appender.A1.Threshold=DEBUG
    log4j.appender.A1.DatePattern='.'yyyy-MM-dd
    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L : %m%n
    
    #应用于文件
    log4j.appender.FILE=org.apache.log4j.FileAppender
    log4j.appender.FILE.File=E:/log4j/file.log
    log4j.appender.FILE.Append=false
    log4j.appender.FILE.Encoding=UTF-8
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
  • 相关阅读:
    数据绘图工具之Matplotlib
    数据分析
    scrapy-redis 实现分布式爬虫
    存储库之MongoDB
    pycharm解释器链接如何pymongo
    爬虫之request相关请求
    爬虫基本原理
    Xadmin
    当网页失去焦点时改变网页的title值
    gulp基础使用及进阶
  • 原文地址:https://www.cnblogs.com/ssqq5200936/p/10778305.html
Copyright © 2011-2022 走看看