文档章节

log4j2的基本配置和实现

小老傅
 小老傅
发布于 2014/09/25 18:56
字数 708
阅读 3622
收藏 19

Log4j 2 contains next-generation Asynchronous Loggers based on the LMAX Disruptor library. In multi-threaded scenarios Asynchronous Loggers have 18 times higher throughput and orders of magnitude lower latency than Log4j 1.x and Logback. See Asynchronous Logging Performance for details. Otherwise, Log4j 2 performs faster than Log4j 1.x in critical areas and similarly to Logback under most circumstances. See Performance for more information.

这是官网给予log4j2的高度的评价,其性能是之前的log4j的18倍,其异步性的操作更是得到了优化,对于新技术的使用和开发是我们程序员必备的知识储备,以下是自己折腾并从网络上面收集的一点小的东西:

一、不多说:网站下载log4j的新的版本,我下载的是截止目前的最新版本2.0.2 二、下载完毕以后其中有好多的jar包,但是其中的好多都是为了兼容性等存在的,初步认识的时候,只需要关注的两个jar包: log4j-api-2.0.2.jar log4j-core-2.0.2.jar 三、把上述的两个jar包导入我们自己的项目中,编写我们的测试用例:

package com.fww.log;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class LogTest
{
	private static Logger log = LogManager.getLogger(LogTest.class.getName());
	public static void main(String[] args)
	{
		log.info("你好啊");
		log.debug("我是debug");
		log.error("错了");
		log.trace("这是什么");
	}
}

四、运行程序就可以实现默认的配置信息下的log4j,但是在实际的开发中我们一定是需要自己按照项目的需求进行文件的配置操作的。以上的配置信息,只会使得error的信息输出到默认的文件中。

五、手动的进行文件的配置操作:

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

<!-- status=debug 可以查看log4j的装配过程 -->

<configuration status="off" monitorInterval="1800"> <properties> <!-- 基本的文件的输出信息的配置 --> <property name="LOG_HOME">log/test</property> <!-- 日志备份目录 --> <property name="BACKUP_HOME">{LOG_HOME}/backup</property> <property name="STAT_NAME">stat</property> <property name="SERVER_NAME">global</property> </properties> <appenders> <!-- 定义控制台输出 --> <Console name="Console" target="SYSTEM_OUT" follow="true"> <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" /> </Console> <!-- 程序员调试日志 --> <RollingRandomAccessFile name="DevLog" fileName="${LOG_HOME}/${SERVER_NAME}" filePattern="${LOG_HOME}/${SERVER_NAME}.%d{yyyy-MM-dd-HH}.log"> <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" /> <Policies> <TimeBasedTriggeringPolicy interval="1" modulate="true" /> </Policies> </RollingRandomAccessFile> </appenders> <loggers> <!-- 3rdparty Loggers --> <logger name="org.springframework.core" level="info"> </logger> <logger name="org.springframework.beans" level="info"> </logger> <logger name="org.springframework.context" level="info"> </logger> <logger name="org.springframework.web" level="info"> </logger> <logger name="org.jboss.netty" level="warn"> </logger> <logger name="org.apache.http" level="warn"> </logger> <logger name="com.mchange.v2" level="warn"> </logger> <!-- Root Logger --> <root level="DEBUG"> <appender-ref ref="DevLog" /> <appender-ref ref="Console" /> </root> </loggers> </configuration>

(以上的配置信息搜集于网络)

六、在其中配置信息中,我们可以手动的进行文件位置的配置。

七、其他的说明:

log4j2相对于之前的配置信息的操作,少了properties的文件的配置操作,现在的配置文件只有json或者是xml形式的文件配置。 log4j2的配置文件的放置路径比较的随意,只要自己建立的项目工程可以把配置信息读取就可以了。

八、继续……

© 著作权归作者所有

小老傅
粉丝 7
博文 44
码字总数 35819
作品 0
海淀
程序员
私信 提问
加载中

评论(1)

品不懂
品不懂
spring+mybatis+druid集成log4j2

log4j2是log4j的替代产品,log4j2支持异步读写,在日志的读写性能上有很大的提高。相应的也就提高了系统的吞吐量。log4j没有更新了,已经被抛弃,所以在新的项目中完全可以抛弃log4j,然后采用...

上官胡闹
2017/04/28
0
0
Java Web (12) Spring集成Log4j2

在pom.xml中配置Log4j2相关的类包 3. 关于log4j2的配置文件名,可以有很多种写法。 log4j2的配置文件查找顺序如下: log4j2-test.properties log4j2-test.yaml or log4j2-test.yml log4j2-te...

Jagery
2016/06/14
56
0
Java日志相关记录 (Jul jcl log4j log4j2 Logback SLF4J)

一、写在前面 在java 中实现记录日志的方式有很多种 1. 最初的方式,就是system.print.out ,err 这样直接在控制台打印消息,缺点太多了,这样与业务逻辑无关的代码会变得更多,不能按日志等及...

独钓渔
2015/12/17
669
0
log4j2之环境搭建及基础配置

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

倚楼听风雨_
2016/10/15
876
0
Log4j2自动清理历史日志

说明 在log4j2中,可以通过配置的清理策略来实现自动清理日志,具体可以参照官网中对RollingFileAppender配置文件的介绍:https://logging.apache.org/log4j/2.x/manual/appenders.html#File...

Recruit
2017/07/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

android6.0源码分析之Camera API2.0下的Preview(预览)流程分析

本文将基于android6.0的源码,对Camera API2.0下Camera的preview的流程进行分析。在文章android6.0源码分析之Camera API2.0下的初始化流程分析中,已经对Camera2内置应用的Open即初始化流程进...

天王盖地虎626
6分钟前
0
0
java 序列化和反序列化

1. 概述 序列恢复为Java对象的过程。 对象的序列化主要有两 首先我们介绍下序列化和反序列化的概念: 序列化:把Java对象转换为字节序列的过程。 反序列化:把字节序列恢复为Java对象的过程。...

edison_kwok
17分钟前
0
0
分布式数据一致性

狼王黄师傅
58分钟前
1
0
经验

相信每位开发者在自己开发的过程中,都会反思一些问题,比如怎样提高编程能力、如何保持心态不砍产品经理、996 之后怎样恢复精力……最近开发者 Tomasz Łakomy 将他 7 年的开发生涯中学习到...

WinkJie
今天
4
0
从源码的角度来看SpringMVC

SpringMVC核心流程图 简单总结 首先请求进入DispatcherServlet 由DispatcherServlet 从HandlerMappings中提取对应的Handler 此时只是获取到了对应的Handle,然后得去寻找对应的适配器,即:H...

骚年锦时
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部