zoukankan      html  css  js  c++  java
  • slf4j 和 log4j合用的(Maven)配置

    简述:

    添加logger的日志输出,下面是配置信息供备忘

     

    步骤:

    1. 在Maven的porn.xml 文件中添加dependency如下

    [html] view plaincopy
     
    1. <dependency>  
    2.     <groupId>org.slf4j</groupId>  
    3.     <artifactId>slf4j-log4j12</artifactId>  
    4.     <version>1.7.2</version>  
    5. </dependency>  


    之后就会添加三个包,

    2. 之后在项目下添加log4j.properties

    项目路径如下,

    log4j.properties

    [html] view plaincopy
     
    1. #config root logger  
    2. log4j.rootLogger = INFO,system.out  
    3. log4j.appender.system.out=org.apache.log4j.ConsoleAppender  
    4. log4j.appender.system.out.layout=org.apache.log4j.PatternLayout  
    5. log4j.appender.system.out.layout.ConversionPattern=MINAServer Logger-->%5p{%F:%L}-%m%n  
    6.   
    7. #config this Project.file logger  
    8. log4j.logger.thisProject.file=INFO,thisProject.file.out  
    9. log4j.appender.thisProject.file.out=org.apache.log4j.DailyRollingFileAppender  
    10. log4j.appender.thisProject.file.out.File=logContentFile.log  
    11. log4j.appender.thisProject.file.out.layout=org.apache.log4j.PatternLayout  

    3. 在代码中添加

    [java] view plaincopy
     
    1. private static final Logger logger = LoggerFactory.getLogger(MINAServer.class);  


    接下来就能输出了,

    [html] view plaincopy
     
    1. logger.info("now {}" , "starting server");  

    输出如下:

    如果要输出logger文件:

    [plain] view plaincopy
     
    1. log4j.rootLogger=INFO,R,stdout    
    2.     
    3. log4j.appender.stdout=org.apache.log4j.ConsoleAppender    
    4. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
    5. log4j.appender.stdout.layout.ConversionPattern=Logger-->%5p{%F:%L}-%m%n   
    6.     
    7. log4j.appender.R=org.apache.log4j.DailyRollingFileAppender    
    8. log4j.appender.R.File=../logs/log  
    9. log4j.appender.R.layout=org.apache.log4j.PatternLayout  
    10. log4j.appender.R.layout.ConversionPattern=Logger-->%5p{%F:%L}-%m%n   



    下面是log4j.properties的配置信息,在此要感谢前辈提供的资源

    #输出格式
    #%m 输出代码中指定的消息
    #%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
    #%r 输出自应用启动到输出该log信息耗费的毫秒数
    #%c 输出所属的类目,通常就是所在类的全名
    #%t 输出产生该日志事件的线程名
    #%n 输出一个回车换行符,Windows平台为“ ”,Unix平台为“ ”
    #%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
    #%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

    格式化例子:
    log4j.appender.thisProject.file.out.layout.ConversionPattern=log4j-->%d{yyyy MMM dd HH:mm:ss,SSS}%5p{%F:%L}-%m%n


    注意:

    1.信息格式化的小知识
        这些参数中间可能会参杂一些数字比如:%5p它的意思就是在输出此参数之前加入多少个空格,还有就是里面的“”的作用是转义字符

    2.log4j.properties文件放置位置
        (1)在java project项目中,它放置的位置是在项目的根目录下而不是在项目的src目录下。
        (2)在javaweb项目中它放置的位置是在src目录下,因为这个时候tomcat会去默认的加载它的,不需要我们去手动的加载log4j的配置文件,只需要根据配置获取自己需要的logger实例即可,由此我们可以知道如果我们使用的不是tomcat容器的话,是不是需要自己手动加载或者至少要配置一下呢?比如使用Websphere等非apache服务器。

    3.对于java web项目里面的日志的位置配置
        (1)如果是要指定日志文件的位置为D盘下的log.txt文件。
        log4j.appender.thisProject.file.out.File=d:\log.txt
        (2)如果指定日志文件的位置为当前的tomcat的工作目录下的某个文件
        log4j.appender.thisProject.file.out.File=${catalina.home}/logs/logs_tomcat.log

    4.log4j的加载机制

        log4j.properties加载机制?其实log4j.properties只是log4j的配置文件。程序启动时,log4j组件去读log4j.properties,和读取普通配置文件没多大区别。获取用户配置的一些log4j的属性值,调用想应该的方法为log4j属性设置。

        把log4j.properties当作一个struts.xml或者一个hibernate-cfg.xml就可以了。但不同的是,log4j不像struts和hibernate,它不是一个独立的组件,没法自己完成初始化,一般都是什么组件需要它 就去初始化。比如,hibernate默认的日志组件就是log4j,在hibernate初始化的时候它会去初始化log4j。如果你没配置log4j.properties,hibernate会抛出异常,但还是可以正常初始化。

  • 相关阅读:
    babel-loader的原理
    js弱类型转换的知识点
    个人说明
    嗯三月的小计划
    bzoj2326 [HNOI2011]数学作业
    bzoj2654 tree
    bzoj1018[SHOI2008]堵塞的交通traffic
    bzoj1937[Shoi2004]Mst 最小生成树
    一般图最大匹配-带花树-带注释模板
    FFT快速傅里叶变换-递归版-带注释模板
  • 原文地址:https://www.cnblogs.com/gisblogs/p/4201771.html
Copyright © 2011-2022 走看看