log4j是一个非常方便的数据库记录输出工具,可以有效地将程序的日志打印到控制台,文件等。
Step 1:首先从Maven中导入log4j的jar包文件
<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version></dependency>
step 2:配置log4j.propertiesp配置文件
具体配置文件为:
1.配置根logger ;=【level】,别名1,别名2,... 其中level分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL几个级别,配置了
OFF即不显示如果配置INFO则输出INFO之前的状态的日志
log4j.rootCategory=INFO,studo,R
2.studo输出端类型;输出类型可以是ConsoleAppender(控制台),FileAppender(文件),DailyRollingFileAppender(每天生成一个日志文件),RollingFileAppender(文件大小到一定尺寸后产生一个新文件),WriterAppender(将日志信息以流格式发送到任意地方)
log4j.appender.studo=org.apache.log4j.ConsoleAppender
3.表示输出端的layout类型;可以有HTMLLayout(HTML类型),PatternLayout(灵活指定布局),SimpleLayout(包含日志信息级别和字符串),TTCCLayout(包含日志产生的时间、线程、类别等信息)
log4j.appender.studo.layout=org.apache.log4j.PatternLayout
4.打印格式;具体设置自行百度就好了
log4j.appender.studo.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %F %p %m%n
5.剩余配置:
设置日志的产生次数、位置、打印格式等等
log4j.appender.R.layout = org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File = D:\\Tomcat\\logs\\demo.log
log4j.appender.studo.R.ConversionPattern = %d-[TS] %p %t %c - %m%n
#配置其它包的输出级别如下 以spring包为例
log4j.logger.org.springframework=DEBUG
step 3:测试代码
static final Log logger = LogFactory.getLog(log4j.class);
public static void main(String args[]) { logger.info("hello word"); logger.info("warn"); }
控制台输出为:
![](https://i-blog.csdnimg.cn/blog_migrate/43a8f68d0d56f0d0d216fad9dd4b4bbc.png)
特别注意:log4j.properties文件的位置idea下默认放在src/main/rescourse文件夹下,如果在web.xml中设置了log4j的路径,那应当将配置文件放到WEB-INF文件夹对应的路径下,否则会报错:提示配置源不完整,
下面这个是在文件放置位置不正确时使用默认的环境,治标不治本(滑稽):
//自动使用缺省的log4j环境 // BasicConfigurator.configure();最好的解决办法就是查看文件是否位置对的,配置文件内有没有错误;