log4j2入门实例

log4j2日志与log4j日志有相似的地方,配置文件都差不多。这里介绍log4j2的简单使用。

第一步、新建maven工程,配置pom.xml文件,引入log4j2的依赖jar包

工程目录,现在log4j2已经到2.8版本了,工程中使用的是2.7。

	

	

pom.xml配置文件

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <log4j2>2.7</log4j2>
  </properties>
  <dependencies>
	    <dependency>
	          <groupId>org.apache.logging.log4j</groupId>
	          <artifactId>log4j-api</artifactId>
	          <version>${log4j2}</version>
	    </dependency>
	    <dependency>
	    		<groupId>org.apache.logging.log4j</groupId>
	    		<artifactId>log4j-core</artifactId>
	    		<version>${log4j2}</version>
	    </dependency>
  </dependencies>

第二步、配置log4j2配置文件

配置文件配置大致和log4j一样,稍微有变动。可以自定义变量。日志输出格式字段名称有变化。

如:level表示日志级别,在log4j中使用p表示级别

        logger表示类名,在log4j中c表示类名

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="600">
	<Properties>
	           <!-- 自定义变量 -->
	           <property name="log.home">logs</property>
	           <property name="log.pattern">%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} %msg%n</property>
	</Properties>
	<Appenders>
	           <!-- 控制台输出日志 -->
	           <Console name="Console" target="SYSTEM_OUT">
	                    <PatternLayout pattern="${log.pattern}"/>
	           </Console>
	           <!-- 按日期生成策略文件日志 -->
	           <RollingRandomAccessFile name="LogFile"
	           							immediateFlush="true"
	                                    fileName="${log.home}/service.log" 
	                                    filePattern="${log.home}/service.%d{yyyy-MM-dd}.log.gz">
	           			<PatternLayout>
	           			        <pattern>${log.pattern}</pattern>
	           			</PatternLayout>      			
	           			<Policies>
	           			         <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
	           			</Policies>
	           </RollingRandomAccessFile>
	</Appenders>
	<Loggers>
	          <Logger name="com.lenovo.log4j2.user" level="warn" additivity="false">
	               <appender-ref ref="Console"/>
	          </Logger>
	          <root level="info">
	                <appender-ref ref="Console"/>
	                <appender-ref ref="LogFile"/>
	          </root>
	</Loggers>
</Configuration>

第三步、书写日志测试类

这里一个自定义日志类

package com.lenovo.log4j2.user;

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

public class UserLog {

	public static final Logger log  = LogManager.getLogger(UserLog.class);
	public static void main(String[] args) {
		String logstr = "hello log4j,this is a message by user self define!";
		log.debug(logstr);
		log.info(logstr);
		log.warn(logstr);
		log.error(logstr);
	}

}

和普通日志类

package com.lenovo.log4j2;

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

public class App {
	public static final Logger log = LogManager.getLogger(App.class);

	public static void main(String[] args) {
		String logstr = "hello log4j ,this is a message";
		log.debug(logstr);
		log.info(logstr);
		log.warn(logstr);
		log.error(logstr);
	}
}
他们的区别是自定义类用来自定义日志输出,日志级别设置的是warn,对应在com.lenovo.log4j2.user目录中。

第四步、查看日志(控制台日志和文件日志)

自定义控制台日志(输出warn级别以上两条)

	

普通控制台日志(输出info级别以上三条)

	

	

文件日志

	

对于自定义日志,并没有加入文件日志的输出中,所以运行之后,service.log中只有普通类输出的日志。


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luffy5459

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值