• 用slf4j统一管理日志总结


    用slf4j统一管理日志总结

    参考网页:http://www.slf4j.org/

    一.使用slf4j统一管理并配置统一使用log4j日志

    使用的jar:(slf4j-api-1.7.5.jar,jcl-over-slf4j-1.7.5.jar,jul-to-slf4j-1.7.5.jar,slf4j-log4j12-1.7.5.jar,log4j-1.2.12.jar)

    因为项目中多个框架使用不同的日志或者现在修改以前项目中的日志框架改用另一种日志,所以使用slf4j统一管理日志会比较方便。

    1.slf4j是一个接口标准。

    2.jcl-over-slf4j-1.7.5.jar,jul-to-slf4j-1.7.5.jar是将以前jcl jul日志桥接到slf4j上并由slf4j管理。

    备注:对于jul-to-slf4j-1.7.5.jar的使用应该在application初始化时加入代码(移除之前存在的handle,安装SLF4JBridgeHandler):
           SLF4JBridgeHandler.removeHandlersForRootLogger();
            SLF4JBridgeHandler.install();

    3.slf4j-log4j12-1.7.5.jar是slf4j接口的实现,是一个slf4j到log4j的转换层,将以slf4j的管理的日志转为log4j

    4.log4j-1.2.12.jar是log4j日志的jar

    5.然后配置一个log4j的配置文件:log4j.properties

    #将等级为INFO的日志信息输出到File(名字任意与定义时保持一致即可)目的地

    #可以填写多个目的地

    #等级可分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL(优先级依次递减)

    log4j.rootLogger =INFO,File

    #此为hibernate的包中类的等级,以及选择其信息输出端(可选的输出端要定义)

    #log4j.logger.org.hibernate.tool.hbm2ddl=INFO,File

    #log4j.logger.org.hibernate.jdbc=DEBUG,File

    log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=TRACE,File

    #log4j.logger.org.hibernate.type.descriptor.sql.BasicExtractor=DEBUG,File

    log4j.logger.org.hibernate.SQL=TRACE,File

    # log4j.additivity.bao.leiming=false是log只打印到本log的输出端中

    #不再打印到其父logger的输出端,防止日志信息打印多次

    log4j.additivity.org.hibernate.SQL=false

    #log4j.logger.org.hibernate.engine.QueryParameters=TRACE,File

    #log4j.logger.org.hibernate.engine.query.HQLQueryPlan=DEBUG,File

    log4j.additivity.org.hibernate.type.descriptor.sql.BasicBinder=false

    #定义名为File(名字可以任意)的日志输出端的类型此为每天产生一个日志

    log4j.appender.File=org.apache.log4j.DailyRollingFileAppender

    #定义名为File的输出端文件名

    log4j.appender.File.file =c:/logs/tomcat.

    log4j.appender.File.encoding =UTF-8

    log4j.appender.File.datePattern ='.'yyyy-MM-dd'.log'

    #定义名为File的输出端的layout的类型,此处PatternLayout为可以灵活的指定布局模式

    log4j.appender.File.layout =org.apache.log4j.PatternLayout

    #使用PatternLayout,此处要指定打印信息的具体格式

    log4j.appender.File.layout.conversionPattern=%d[%t]%-5p%c-%m%n

    log4j.appender.File.append =true

    #与上述雷同,此处为定义名为stdout的日志输出端类型

    log4j.appender.stdout=org.apache.log4j.ConsoleAppender

    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-ddHH:mm:ss,SSS}[%c]-[%p]%m%n

    这样就可以在在项目中使用slf4j统一的接口写日志了(假设在名为Aa类)

    //logger的名字见配置文件,如果没有就继承父,如果没父就继承rootLogger

    final Logger logger = LoggerFactory.getLogger("logger的名字");

    logger.debug("Thisis debug message");

            logger.info("This is infomessage");

            logger.warn("This is warnmessage");

            logger.error("This is errormessage");

    即使以后跟换日志框架(例如不使用log4j而改使用logback)都很方便。

    举例:原先项目使用slf4j统一管理使用log4j而现在改使用logback

    步骤:

    1、删除log4j-1.2.12.jar、slf4j-log4j12-1.7.5.jar

    2、删除配置文件log4j.properties

    3、导入jar包:log4j-over-slf4j-1.7.5.jar、logback-access-1.0.13.jar、logback-classic-1.0.13.jar、logback-core-1.0.13.jar

    4、增加logback-1.0.13配置文件logback.xml

    即可

    不需要修改项目之前的代码,只要更换jar包和相应日志的配置文件即可

    重新回顾一遍。2016年12月15号

    补充参考网址:

    http://phl.iteye.com/blog/2021461

    http://www.tuicool.com/articles/IfeUfq

    http://blog.csdn.NET/xianymo/article/details/51026663

  • 相关阅读:
    Visual C++ 2005如何引用静态链接库(.lib)
    CodeSnippets: Recursively remove all .svn directories [shell] [svn] [bash]
    静态连接库的生成和使用
    vc生成静态库例子
    Remove the .pyc files from current directory tree and from svn (Python recipe) by Senthil Kumaran
    boost 1.52在windows下的配置
    CMake Cross Platform Make
    std::equal_range
    Windows环境下使用Boost
    Js$.extend方法使方法参数更灵活
  • 原文地址:https://www.cnblogs.com/huajiezh/p/6216178.html
Copyright © 2020-2023  润新知