log4j日志输出到文件的配置

栏目: Java · 发布时间: 6年前

内容简介: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中央仓库下载到, http://search.maven.org/

二.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的配置(非必要)

<!--log4j-->

<!--给日志配置路径-->

<context-param>

<param-name>webAppRootKey</param-name>

<param-value>webApp.root</param-value>

</context-param>

<!--<context-param>

<param-name>log4jConfigLocation</param-name>

<param-value>classpath:log4j2.xml</param-value>

</context-param>-->

<listener>

<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>

</listener>

1.使用默认的名字(log4j.properties),就不用配置log4jConfigLocation(上面注释掉的部分)。不然就指定路径(log4j2.xml是我现在用不到的部分),我现在放的是在根目录,直接classpath:log4j2.xml。

classpath是指定路径的格式,此外还有classpath.*:log4j2.xml。他们两个的区别是classpath是默认加载第一个,加载到就结束。classpath.*还会搜索后面还有没有匹配项。

2.如果指定绝对路径就不用配置webAppRootKey,这个是把文件放到webapp下面的。value值可以自定义,但是name值只能是webAppRootKey。配置了之后就要配置listener监听,不然就忽略。

官方的说的默认加载顺序为1.* 2.*(前面这两个我忘了...与 java 相关的就后面的两个)3.log4j.properties和3.log4j.xml。现在网上有很多老旧的文章是1.X的版本的xml配置方法。

我这里要说的是2.X的。他们两者的区别如下

1.X

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">

<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>

<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">

<layout class="org.apache.log4j.PatternLayout">

<param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>

</layout>

</appender>

<category name="org.apache.log4j.xml">

<priority value="info" />

</category>

<Root>

<priority value ="debug" />

<appender-ref ref="STDOUT" />

</Root>

</log4j:configuration>

2.X

<?xml version="1.0" encoding="UTF-8"?>

<Configuration>

<Appenders>

<Console name="STDOUT" target="SYSTEM_OUT">

<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>

</Console>

</Appenders>

<Loggers>

<Logger name="org.apache.log4j.xml" level="info"/>

<Root level="debug">

<AppenderRef ref="STDOUT"/>

</Root>

</Loggers>

</Configuration>

五、Spring的db.config的配置(非必要)

我是启用了mybatis和druid连接池,所以会加一句

filters: stat,log4j

这样可以监听到log4j日志。

本文永久更新链接地址 http://www.linuxidc.com/Linux/2017-12/149788.htm


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Little MLer

The Little MLer

Matthias Felleisen、Daniel P. Friedman、Duane Bibby、Robin Milner / The MIT Press / 1998-2-19 / USD 34.00

The book, written in the style of The Little Schemer, introduces instructors, students, and practicioners to type-directed functional programming. It covers basic types, quickly moves into datatypes, ......一起来看看 《The Little MLer》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

SHA 加密
SHA 加密

SHA 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具