一、在一个web 项目中,使用tomcat 启动通常会在控制台输出出现一个警告信息:
通常为未添加 log4j.properties文件的原因。
二、下面以一个普通的maven项目为例说明一下
1. 在maven项目的配置文件pom.xml中已经有日志文件的配置选项,如果需要使用,记得配置进去。
1 <!-- 日志文件 --> 2 <dependency> 3 <groupId>org.slf4j</groupId> 4 <artifactId>slf4j-api</artifactId> 5 <version>${org.slf4j.version}</version> 6 </dependency> 7 <dependency> 8 <groupId>org.slf4j</groupId> 9 <artifactId>slf4j-log4j12</artifactId> 10 <version>${org.slf4j.version}</version> 11 <scope>runtime</scope> 12 </dependency>2. 一般是在resources资源文件夹下添加 log4j.properties 配置文件。
log4j.properties 内容#日志框架
#最早是System.out.print
#org.apache.log4j.Logger
#org.apache.commons.logging.Log
#java.util.logging.Logger
#org.slf4j.Logger 面向接口编程,选择实现(选择都使用这个)
#日志等级
#TRACE:详细等级,堆栈信息
#debug:类似于System.out.print
#info:类似于Hibernate的show_sql
#warn:不影响运行, 只是提示
#error:出现异常
#全局日志等级配置,输出位置
log4j.rootLogger=error, stdout,logfile
#stdout控制器
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#输出格式
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c]:%L - %m%n
#文件路径输出
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
#默认输出到tomcat的根路径或者运行测试工程的根路径
log4j.appender.logfile.File=pss.log
log4j.appender.logfile.MaxFileSize=512KB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=3
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
#局部日志等级:就近原则
#log4j.logger.固定,后面添加想那个包使用不一样的日志等级
#log4j.logger.cn.itsource.pss=debug
三、补充
关于log4j日志文件的作用:
在编程时经常不可避免地要使用到System.out.println() 语句输出日志信息,而且往往会有一些判断,
比如: if(condition) { System.out.println("some information.") ; }
这些判断造成正常的程序逻辑中混杂了大量的输出语句。而在开发阶段写下的这些判断仅为了调试的语句,在开发完成时需要查找并移除。
部署运行后,尤其是在一些企业应用系统中,还经常需要进一步调试,这时就遇到了更大的麻烦。所以,我们需要一套完备的、灵活的、可配置的日志工具.
所以, log4J就是优秀的选择。
Logger ----- 在执行应用程序时,接收日志语句生成的日志请求。
Appender -- 管理日志语句的输出结果。
Layout ----- 用于指定 appender 将日志语句写入日志目的地所采用的格式。