slf4j 和 log4j合用的(Maven)配置

简述:php

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


步骤:
java

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

<dependency>
    <groupId>org.slf4j</groupId>  
    <artifactId>slf4j-log4j12</artifactId>  
    <version>1.7.2</version>  
</dependency>

以后就会添加三个包,apache

2. 以后在项目下添加log4j.propertiestomcat

项目路径以下,服务器

log4j.propertiesapp

#config root logger
log4j.rootLogger = INFO,system.out
log4j.appender.system.out=org.apache.log4j.ConsoleAppender
log4j.appender.system.out.layout=org.apache.log4j.PatternLayout
log4j.appender.system.out.layout.ConversionPattern=MINAServer Logger-->%5p{%F:%L}-%m%n

#config this Project.file logger
log4j.logger.thisProject.file=INFO,thisProject.file.out
log4j.appender.thisProject.file.out=org.apache.log4j.DailyRollingFileAppender
log4j.appender.thisProject.file.out.File=logContentFile.log
log4j.appender.thisProject.file.out.layout=org.apache.log4j.PatternLayout




3. 在代码中添加this

private static final Logger logger = LoggerFactory.getLogger(MINAServer.class);



接下来就能输出了,spa

logger.info("now {}" , "starting server");



输出以下:


若是要输出logger文件:

log4j.rootLogger=INFO,R,stdout  
  
log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=Logger-->%5p{%F:%L}-%m%n 
  
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender  
log4j.appender.R.File=../logs/log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
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平台为“\r\n”,Unix平台为“\n”#%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.log4.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会抛出异常,但仍是能够正常初始化。

相关文章
相关标签/搜索