简述:
添加logger的日志输出,下面是配置信息供备忘
步骤:
在Maven的porn.xml 文件中添加dependency如下
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.12</version>
</dependency>
之后就会添加三个包,
说明:在http://mvnrepository.com 网站 搜索 slf4j 查询当前最新jar版本(目前1.7.12)
之后就会添加三个包,
2. 之后在项目下添加log4j.properties
项目路径如下,
log4j.properties
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=%-d{yyyy-MM-dd HH\:mm\:ss} [%c]-[%p] %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=../logs/log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p %t %c - %m%n
说明:请注意多余的空格需要清除
3. 在代码中添加
private static final transient Logger log = LoggerFactory.getLogger(Quickstart.class);
接下来就能输出了,
log.info("Hello, mere mortal.");
输出如下:
2015-12-21 11:52:05 [com.common.shiro.Quickstart]-[INFO] Hello, mere mortal.
下面是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.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c]-[%p] %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.R.File=d:\\log.txt
(2)如果指定日志文件的位置为当前的tomcat的工作目录下的某个文件
log4j.appender.R.File=${catalina.home}/logs/logs_tomcat.log
4.log4j的加载机制
log4j.properties加载机制?其实log4j.properties只是log4j的配置文件。程序启动时,log4j组件去读log4j.properties,和读取普通配置文件没多大区别。获取用户配置的一些log4j的属性值,调用想应该的方法为log4j属性设置。