文档章节

log4J日志配置

iborder
 iborder
发布于 2016/12/12 23:42
字数 796
阅读 28
收藏 0

Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。

使用log4j需要导入log4j-core-xx.jar和log4j-api-xx.jar

log4j1.x版本只需要导入一个jar包,通过一个*.properties 或 *.xml的文件作为主配置文件;

log4j2.x版本都要导入两个jar包,采用*.xml,*.json或者*.jsn文件作为配置文件;

在默认情况下,系统选择配置文件的优先级如下:

  1.  log4j-test.json 或 log4j-test.jsn文件
  2.  log4j2-test.xml
  3.  log4j.json 或 log4j.jsn文件
  4.  log4j2.xml

log4j1.x和log4j2.x两个版本使用有一些区别,下面主要讲解使用log4j2.x

Log4j最新版本是apache-log4j-2.7

Log4j由三个重要的组件构成:

日志级别(Logger):从高到低有FATAL、ERROR、WARN、 INFO、DEBUG、TRACE,分别用来指定这条日志信息的重要程度;

日志信息输出目的地(Appender):日志输出目的地可以是控制台、文件和网络设备等;

日志信息输出格式(Layout):控制了日志信息的显示内容。

1、配置文件

Log4j有默认的配置,日志级别是ERROR,输出到控制台

log4j2.xml(放在src目录下,运行时自动加载)

<?xml version="1.0" encoding="UTF-8"?>
<!-- Configuration节点的属性status,用于设置log4j自身内部运行日志输出(只输出到控制台),可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出 -->
<configuration status="OFF">
    <!--定义所有的appender-->
    <appenders>
        <!--配置输出控制台-->
        <Console name="Console" target="SYSTEM_OUT">
            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
            <!--这个都知道是输出日志的格式-->
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
        </Console>
        <!--打印出日志到文件,append属性设置为false,每次运行程序会自动先清空之前的日志-->
        <File name="error" fileName="log/error.log" append="false">
        	<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
        </File>

        <!--打印出日志到文件,单个日文件大小超过size指定的值,则该日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
        <RollingFile name="RollingFile" fileName="log/app.log" filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
            <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n"/>
            <SizeBasedTriggeringPolicy size="50MB"/>
            <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20. -->
            <DefaultRolloverStrategy max="20"/>
        </RollingFile>
    </appenders>
    <!--定义所有logger,appender引入到logger才会生效-->
    <loggers>
    <!-- 每个logger都有一个日志级别,用来控制日志的输出。未分配级别的logger将自动继承它最近的父logger的日志级别 -->
    	<!--
        	additivityz值为true,如果logger也满足root的条件,会出现打印两遍的情况。
        -->
        <logger name="cn.iborder.test.TestLog4j" level="trace" additivity="false">
            <appender-ref ref="Console"/>
            <appender-ref ref="error"/>
        </logger>
        <!--默认root的logger-->
        <root level="trace">
            <appender-ref ref="Console"/>
        </root>
    </loggers>
</configuration>

2、测试实例

package cn.iborder.test.page;

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

public class TestLog4j {
	//通过指定的名字获得logger
	private static Logger logger = LogManager.getLogger(TestLog4j.class.getName());
	
	@Test
	public void test1() {
		logger.trace("trace级别");
		logger.debug("debug级别");
		logger.info("info级别");
		logger.warn("warn级别");
		logger.error("error级别");
		logger.fatal("fatal级别");
	}
}

 

© 著作权归作者所有

共有 人打赏支持
iborder
粉丝 4
博文 73
码字总数 48998
作品 0
揭阳
程序员
Java --log4j.properties详解

已经完结的工程中用到了log4j,抽时间写一篇日志记录下。 //参考文章如下 http://it.oyksoft.com/log4j/ 一、log4j是什么?有什么用? Log4j是一个日志记录工具,基于java语言的。我们可以将...

求是科技
2015/11/03
0
0
java 日志框架——log4j

Log4J是JAVA下的一款日志组件 下载: http://logging.apache.org/log4j/2.x/download.html 下面的示例我使用最新版本2.7无法正常运行,最新版本使用方法可能不同。本文示例使用log4j-1.2.15测...

xundh
05/09
0
0
jboss log4j冲突分析与解决

Log4j作为日志组件被大多数的系统所使用,Jboss也不例外的采用了Log4j作为它的日志输出组件。 但在使用JBoss时,很多人经常碰到一些冲突,这些冲如自己配置的log4j文件无效,系统抛org.jboss...

职通网
2012/07/16
0
0
Maven及LOG4J配置示例

刚才在测试小项目里配置了一下log4j,很久不用,有些遗忘了,配置完发出来备忘一下 首先用maven引入log4j,相关的代码如下: <dependency><groupId>log4j</groupId><artifactId>log4j</artif......

王小明123
2012/12/25
0
2
log4j 使用及配置分析记录

log4j是一个非常强大的log记录软件,下面我们就来看看在项目中如何使log4j。 ps:其配置文件有两种 log4j.properties 和log4j.xml 两种形式。xml更强大,功能更丰富 ,properties更简单易懂。...

北方攻城师
2015/04/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

day63-20180821-流利阅读笔记-待学习

性别歧视在日本:“我是女生,所以社会不让我学医” 毛西 2018-08-21 1.今日导读 大家在看病的时候,有留意过女医生的比例吗?在性别歧视现象十分严重的日本,男医生和女医生的比例达到了惊人...

aibinxiao
52分钟前
2
0
Ubuntu18.04 显卡GF-940MX安装NVIDIA-390.77

解决办法: 下面就给大家一个正确的姿势在Ubuntu上安装Nvidia驱动: (a)首先去N卡官网下载自己显卡对应的驱动:www.geforce.cn/drivers (b)下载后好放在英文路径的目录下,怎么简单怎么来...

AI_SKI
今天
4
0
深夜胡思乱想

魔兽世界 最近魔兽世界出了新版本, 周末两天升到了满级,比之前的版本体验好很多,做任务不用抢怪了,不用组队打怪也是共享拾取的。技能简化了很多,哪个亮按哪个。 运维 服务器 产品 之间的...

Firxiao
今天
1
0
MySQL 8 在 Windows 下安装及使用

MySQL 8 带来了全新的体验,比如支持 NoSQL、JSON 等,拥有比 MySQL 5.7 两倍以上的性能提升。本文讲解如何在 Windows 下安装 MySQL 8,以及基本的 MySQL 用法。 下载 下载地址 https://dev....

waylau
今天
2
0
微信第三方平台 access_token is invalid or not latest

微信第三方开发平台code换session_key说的特别容易,但是我一使用就带来无穷无尽的烦恼,搞了一整天也无济于事. 现在记录一下解决问题的过程,方便后来人参考. 我遇到的这个问题搜索了整个网络也...

自由的开源
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部