log4j日志输出到文件的配置

log4j日志输出到文件的配置

1.Maven的dependency
2.log4j.properties的配置
3.Junit的Test类
4.web.xml的配置(非必要)
5.spring的db.config的配置(非必要)

一.maven的dependency

<!--log4j-->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.3</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.25</version>
    </dependency>
<!--junit-->
 <dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
 </dependency>

这些jar包都可以去maven中央仓库下载到,

二.log4j.properties的配置。

#所有日志
log4j.rootLogger = DEBUG,stdout,file

log4j.logger.org.apache.ibatis=warn
log4j.logger.Java.sql=warn
log4j.logger.org.springframework=warn

# Druid
log4j.logger.druid.sql=DEBUG
log4j.logger.druid.sql.DataSource=warn
log4j.logger.druid.sql.Connection=warn
log4j.logger.druid.sql.Statement=DEBUG
log4j.logger.druid.sql.ResultSet=warn
#设置包名的输出级别
log4j.logger.cn.wdq=DEBUG,wdq

#控制台输出
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.Threshold=DEBUG
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}[ %p ]%m%n

#所有文件输出
log4j.appender.file = org.apache.log4j.FileAppender
log4j.appender.file.File = ${webApp.root}/wdq_logs/allDEBUG.log
log4j.appender.file.Encoding=UTF-8
log4j.appender.file.name = fileLogDemo
log4j.appender.file.Threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}[ %p ]%m%n
log4j.appender.file.append = true

#wdq下所有包的文件输出
log4j.appender.wdq = org.apache.log4j.FileAppender
log4j.appender.wdq.File = ${webApp.root}/wdq_logs/package_wdq.log
log4j.appender.wdq.Encoding=UTF-8
log4j.appender.wdq.name = fileLogDemo
log4j.appender.wdq.Threshold=DEBUG
log4j.appender.wdq.layout=org.apache.log4j.PatternLayout
log4j.appender.wdq.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}[ %p ]%m%n
log4j.appender.wdq.append = true

log4j.properties是默认加载的文件名,如果要另外起名字,还需要在web.xml里面进行配置,如果是测试用的,最好用默认的名字,这跟Spring的Application.xml有点像。

log4j.rootLogger = DEBUG,stdout,file中的DEBUG是日志输出优先级,从高到低依次为error,warn,info,debug,低级别的可以输出高级别的日志,如debug可以输出任何优先级的

日志,但是info只能输出info,warn,error级别的日志。stdout,file这两个有点类似于变量名,可以自定义名称,可以用这两个东西进行控制台或者文件的输出。比如控制台的为

log4j.appender.stdout=org.apache.log4j.ConsoleAppender;保存为文件的为log4j.appender.file = org.apache.log4j.FileAppender。还有另外三种按天生成的,流形式生成的,

滚动形式的,这里就不介绍了(反正我也忘了...),具体可以去官方文档看一下appender的几种输出形式。值得一提的是1.文件编码(Encoding):这个要定义为UTF-8不然输出到文件里面有时候部分类

的编码不一致,有导致部分乱码。2.文件的名字和存储路径(File):如上,我写的是${webApp.root}/wdq_logs/package_wdq.log,这个其实是在web.xml里面定义好的。如果没有定义,那么

将会输出到你项目的磁盘根目录。文件名的格式有常用的.log和.html,推荐用.log,方便项目里面的所有人查看。3.(追加方式append):设置属性为true,如果是false的话就会覆盖掉原先的日志而不是

追加到后面。

三.Junit的测试类的输出

package cn.wdq.test;

import org.apache.log4j.Logger;
import org.junit.Test;

public class LoggerTest {
    Logger logger= Logger.getLogger(LoggerTest.class);
    @Test
    public void printLogger(){
        logger.error("直接输出吧");
        try {

} catch (Exception e) {
            e.printStackTrace();
        }
    }
}

控制台输出效果

log4j日志输出到文件的配置

文件输出效果

log4j日志输出到文件的配置

四.web.xml的配置(非必要)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/77fcd95fc72fff185fe9b87296dcadeb.html