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


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

查看所有标签

猜你喜欢:

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

五子连珠必胜法

五子连珠必胜法

新井华石 / 张书 / 人民体育出版社 / 1997-10 / 12.00元

《五子连珠必胜法》经日本国虹有社授权,译自日本连珠社已故理事长新井华石九段经典著作《连珠必胜法》一书。内容阐述和介绍五子连珠的基本着法和各种常用的布局定式。全书分两大编。连珠基本编介绍连珠棋的发展历史、连珠棋的规则和规定以及基本珠形。连珠必胜编分为六章分别阐述和介绍各种常用布局定式,包括二号连浦月、五号连花月、一号连云月、二号桂名月、三号桂岚月、二号间恒星六种布局定式。一起来看看 《五子连珠必胜法》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具