文档章节

log4j2插件使用

星痕2018
 星痕2018
发布于 2017/05/26 18:39
字数 758
阅读 95
收藏 1

pom.xml配置依赖

<!-- log4j2日志 -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-api</artifactId>
			<version>${log4j2.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>${log4j2.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-web</artifactId>
			<version>${log4j2.version}</version>
		</dependency>

log4j2.xml文件放到resources文件夹

<?xml version="1.0" encoding="UTF-8"?>
<!--
status : 这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,会看到log4j2内部各种详细输出
monitorInterval : Log4j能够自动检测修改配置文件和重新配置本身, 设置间隔秒数。此处表示每隔600秒重读一次配置文件
-->
<configuration status="OFF" monitorInterval="600">
	<!-- 日志级别:TRACE < DEBUG < INFO < WARN < ERROR < FATAL -->
    <!-- 如果设置为WARN,则低于WARN的信息都不会输出 -->
    
    <properties>
    	<!-- 配置日志文件输出目录,此处为项目根目录下的logs文件夹 -->
    	<property name="logPath">${sys:catalina.home}/logs/MyProject</property>
    </properties>
    
	<appenders>
		<!-- 这个输出控制台的配置 -->
		<Console name="Console" target="SYSTEM_OUT">
			<!-- 控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)
			<ThresholdFilter level="trace" onMatch="ACCEPT" onMismatch="DENY"/>
			-->
			<!--日志输出的格式-->
			<!--
				%d{yyyy-MM-dd HH:mm:ss, SSS} : 日志生产时间,输出到毫秒的时间
				%-5level : 输出日志级别,-5表示左对齐并且固定输出5个字符,如果不足在右边补0
				%c : logger的名称(%logger)
				%t : 输出当前线程名称
				%p : 日志输出格式
				%msg : 日志内容,即 logger.info("message")
				%n : 换行符
				%C : Java类名(%F)
				%L : 行号
				%M : 方法名
				%l : 输出语句所在的行数, 包括类名、方法名、文件名、行数
				hostName : 本地机器名
				hostAddress : 本地ip地址
			-->
			<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{36} %L %M - %msg%n" />
		</Console>
		
		<!-- 循环日志文件:日志文件大于阀值的时候,就开始写一个新的日志文件
			这个会打印出所有的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档
			fileName    : 指定当前日志文件的位置和文件名称
			filePattern : 指定当发生Rolling时,文件的转移和重命名规则
			SizeBasedTriggeringPolicy : 指定当文件体积大于size指定的值时,触发Rolling
			DefaultRolloverStrategy : 指定最多保存的文件个数,如不设置,则默认为最多同一文件夹下7个文件,这里设置了20
			TimeBasedTriggeringPolicy : 这个配置需要和filePattern结合使用
			注意filePattern中配置的文件重命名规则是${FILE_NAME}_%d{yyyy-MM-dd}_%i,最小的时间粒度是dd,即天,
			TimeBasedTriggeringPolicy指定的size是1,结合起来就是每1天生成一个新文件
		-->
		<RollingFile name="RollingFile" fileName="${logPath}/app.log" 
		filePattern="${logPath}/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log">
			<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
			<SizeBasedTriggeringPolicy size="50MB"/>
			<DefaultRolloverStrategy max="20"/>
		</RollingFile>
	</appenders>
	<loggers>
		<!--过滤掉spring和mybatis的一些无用的DEBUG信息-->
		<logger name="org.springframework" level="info"></logger>
		<logger name="com.alibaba" level="warn"></logger>
		<root level="debug">
			<appender-ref ref="Console" />
			<appender-ref ref="RollingFile" />
		</root>
	</loggers>
</configuration>

如何使用

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

/**
 * 日志对象
 */
protected static Logger logger = LogManager.getLogger(MyController.class);

logger.info("打印日志信息");

 

© 著作权归作者所有

星痕2018
粉丝 10
博文 68
码字总数 16428
作品 0
石家庄
程序员
私信 提问
log4j2之环境搭建及基础配置

注 本文是使用 Maven + springMVC + slf4j + log4j2(v2.7) 示例,并不是纯粹的 log4j2 ,如果执行不使用 slf4j,只需要在调用的地方,修改 loggerFactory 即可。 一般情况下,不做特殊配置...

倚楼听风雨_
2016/10/15
876
0
Apache Log4j 2.0 Beta6 发布

Apache Log4j 2.0 发布第 6 个 beta 版本,该版本改进内容包括: 修复的 Bug: o LOG4J2-231: Logger.getParent() 没有返回正确的 Logger o LOG4J2-201: 将插件注解属性从 type 改为 category...

oschina
2013/05/12
1K
6
springboot使用log4j输出

参考链接:springboot日志体系---log4j2 前言 在搭建开发框架的时候,看了Springboot官方文档推荐使用Logback和log4j2做日志的输出,最终选择了log4j2 本文解决以下问题: - 为何使用log4j2 ...

特拉仔
2018/07/24
0
0
Apache Log4j Audit 1.0.1 发布,基于 Log4j 的日志框架

Log4j Audit 1.0.1 发布 Log4j Audit 提供了一个日志框架,用于定义监听事件。然后使用 Log4j 记录它们。 该框架侧重于定义事件并为应用程序提供记录机制。Log4j Audit 通过定义自己的 Audi...

程六金
2018/12/20
0
0
Log4j1升级Log4j2实战

这是在公司内部的一次升级实践,删除了很多隐私的内容,所以可能不是很完整。 1、背景 在任何系统中,日志都是非常重要的组成部分,它是反映系统运行情况的重要依据,也是排查问题时的必要线...

jason-moko
2017/04/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 程序员做噩梦

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @-冰冰棒- :#今日歌曲推荐# 手嶌葵《Kiss The Girl》 《Kiss The Girl》- 手嶌葵 手机党少年们想听歌,请使劲儿戳(这里) @Sharon啊 :今天...

小小编辑
29分钟前
62
4
Another app is currently holding the yum lock; waiting for it to exit...

Another app is currently holding the yum lock; waiting for it to exit... The other application is: PackageKit Memory : 153 M RSS (266 MB VSZ) Started: Thu Jul 12 00:03......

圣洁之子
37分钟前
0
0
FastDateFormat 研究

FastDateFormat 对缓存的利用,其实就是用ConcurrentHashMap 做了一个map类型的缓存 public F getInstance(final String pattern, TimeZone timeZone, Locale locale) { Validate......

暗中观察
今天
3
0
Android双向绑定原理简述

Android双向绑定原理简述 双向绑定涉及两个部分,即将业务状态的变化传递给UI,以及将用户输入信息传递给业务模型。 首先我们来看业务状态是如何传递给UI的。开启dataBinding后,编译器为布局...

tommwq
今天
4
0
Spring系列教程八: Spring实现事务的两种方式

一、 Spring事务概念: 事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的话,那么事务就会回滚到最开始的状态,仿佛什么都没发生过一样。...

我叫小糖主
今天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部