版本区别

Log4j 2 与 log4j 1.x 最大的区别在于,新版本的 log4j 2 只支持 json 与 xml,不再支持以前的 properties 资源文件

下载 log4j 的jar 包


可在 apache 官网下载,地址:http://logging.apache.org/log4j/2.x/download.html
下载完解压,需要导入项目的jar包有:
log4j-api-2.0-beta8.jar
log4j-core-2.0-beta8.jar

简单的测试
 测试代码:
package com.ysq.test;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; public class MyTest {
private static Logger logger = LogManager.getLogger(MyTest.class.getName()); public static void main(String[] args){
logger.debug("debug Hello World!");
logger.info("info Hello World!");
logger.error("Error Hello World!");
}
}

默认配置下,执行结果:

17:19:58.953 [main] ERROR com.ysq.test.MyTest - Error Hello World!

添加自定义配置


log4j 2 支持的配置文件名称(应放在 classPath 下,我们这里直接放在项目的 src 下面):
log4j2-test.json
log4j2-test.jsn
log4j2-test.xml
log4j2.json
log4j2.jsn
log4j2.xml
以上任选其一,我们这里使用log4j2.xml
内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF">
<appenders>
<Console name="consolePrint" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
</appenders>
<loggers>
<root level="info">
<appender-ref ref="consolePrint" />
</root>
</loggers>
</configuration>

执行结果:

17:26:01.375 [main] INFO  com.ysq.test.MyTest - info Hello World!
17:26:01.375 [main] ERROR com.ysq.test.MyTest - Error Hello World!

log4j 输出等级由高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。在此,我们定义了
level 为 info,表示打印等级为 info 或者info 以上的输出。


log4j
2 与 log4j 1.X 配置详细区别
官网对此作出了详细的比较,在此不再列出,地址:http://logging.apache.org/log4j/2.x/manual/migration.html

推荐实际应用配置
在实际环境中,我们可能需要在控制台输出一些
debug 信息,并且将错误信息写入日志,可采用如下配置:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appenders>
<RollingFile name="outErrorFile" fileName="logs/exception.log"
filePattern="logs/$${date:yyyy-MM}/exception-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout pattern="%d{yyyy.MM.dd HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n" />
<SizeBasedTriggeringPolicy size="10MB" />
</RollingFile> <Console name="consolePrint" target="SYSTEM_OUT">
<PatternLayout pattern="%d{yyyy.MM.dd HH:mm:ss z} %-5level %class{36} %L %M - %msg%xEx%n" />
</Console>
</appenders>
<loggers>
<root level="DEBUG">
<appender-ref level="DEBUG" ref="consolePrint"/>
<appender-ref level="ERROR" ref="outErrorFile"/>
</root>
</loggers>
</configuration>

输出结果如下:
2013.07.29 17:37:10 CST DEBUG com.ysq.test.MyTest 10 main - debug Hello World!
2013.07.29 17:37:10 CST INFO com.ysq.test.MyTest 11 main - info Hello World!
2013.07.29 17:37:10 CST ERROR com.ysq.test.MyTest 12 main - Error Hello World!

并且会在项目的 logs 文件夹下生产异常文件,而且文件达到一定的大小会自动压缩,按照日期生产历史日志。












Log4j 2 配置的更多相关文章

  1. commons-logging和Log4j 日志管理/log4j.properties配置详解

    commons-logging和Log4j 日志管理 (zz) 什么要用日志(Log)? 这个……就不必说了吧. 为什么不用System.out.println()? 功能太弱:不易于控制.如果暂时不 ...

  2. springmvc 项目完整示例06 日志–log4j 参数详细解析 log4j如何配置

    Log4j由三个重要的组件构成: 日志信息的优先级 日志信息的输出目的地 日志信息的输出格式 日志信息的优先级从高到低有ERROR.WARN. INFO.DEBUG,分别用来指定这条日志信息的重要程度 ...

  3. Log4J实用配置指南

    转自:http://www.cnblogs.com/licheng/archive/2008/08/23/1274566.html 1         概述 本文档是针对Log4j日志工具的使用指南. ...

  4. Log4j XML配置

    问题描述:     Log4j  XML配置 问题解决:     (1)编写log4j.xml配置文件 注:     如上的XML文件必须以log4j.xml文件命名,否则无法读取配置文件,同样的如果 ...

  5. Hibernate4搭建Log4J日志管理(附Log4j.properties配置详解)

    1.首先加入slf4j的jar包,即slf4j-api-1.6.1.jar 在hibernate官网下载hibernate-release-4.2.2.Final.zip并解压,在hibernate- ...

  6. java之log4j的配置

    java之log4j的配置 log4j有很多的优点,用起来很方便,就是配置起来有些麻烦,下面我介绍一下log4j的配置方法. log4j是用来记录日志的. 软件的运行过程离不开日志.日志主要用来记录系 ...

  7. Log4j.properties配置详细解读

    Log4j.properties配置 Log4j有三个主要的组件:Loggers(记录器),Appenders  (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以 ...

  8. 热切换Log4j级别配置

    欢迎和大家交流技术相关问题:邮箱: jiangxinnju@163.com博客园地址: http://www.cnblogs.com/jiangxinnjuGitHub地址: https://gith ...

  9. java日志框架log4j详细配置及与slf4j联合使用教程

    最后更新于2017年02月09日 一.log4j基本用法 首先,配置log4j的jar,maven工程配置以下依赖,非maven工程从maven仓库下载jar添加到“build path” <d ...

  10. springmvc 项目完整示例05 日志 --log4j整合 配置 log4j属性设置 log4j 配置文件 log4j应用

    log4j 就是log for java嘛,老外都喜欢这样子,比如那个I18n  ---internationalization  不就是i和n之间有18个字母... http://logging.a ...

随机推荐

  1. Java的一些基础知识,现在回顾一下,毕竟学了那么久!

    一.基础知识:1.什么是JVM.JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机,用于保证java的跨平台的特性,java语言是跨平台,jvm不是跨平台的,jv ...

  2. MySQL索引的数据结构-B+树介绍

    目录 一.树 二.B+树 2.1 B+树性质 三.聚集索引和辅助索引 3.1 聚集索引 3.2 辅助索引 3.3 聚集索引和非聚集索引的区别 四.再看B+树 4.1 B+树的插入操作 4.2 B+树的 ...

  3. 聚类时的轮廓系数评价和inertia_

    在进行聚类分析时,机器学习库中提供了kmeans++算法帮助训练,然而,根据不同的问题,需要寻找不同的超参数,即寻找最佳的K值 最近使用机器学习包里两个内部评价聚类效果的方法:clf=KMeans(n ...

  4. asp.net core 系列之Configuration

    在ASP.NET Core中的App configuration 是通过configuration providers基于key-value对建立的.Configuration providers读取 ...

  5. C语言学习书籍推荐《C语言入门经典(第4版)》

    霍顿 (Ivor Horton) (作者), 杨浩 (译者) <C语言入门经典(第4版)>的目标是使你在C语言程序设计方面由一位初学者成为一位称职的程序员.读者基本不需要具备任何编程知识, ...

  6. Skyline WEB端开发5——添加标签后移动

    针对于标签或者模型,在skyline上可以进行移动.可以让一个模型可以像无人机似的飞行,或者描述从一个点到另一个点的飞行轨迹. 话不多说,直接上干货. 第一步 添加标签 参考网址:https://ww ...

  7. Bzoj 3131 [Sdoi2013]淘金 题解

    3131: [Sdoi2013]淘金 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 733  Solved: 363[Submit][Status][ ...

  8. [Usaco2007 Open]Fliptile 翻格子游戏题解

    问题 B: [Usaco2007 Open]Fliptile 翻格子游戏 时间限制: 5 Sec  内存限制: 128 MB 题目描述 Farmer John knows that an intell ...

  9. C#跟Lua如何超高性能传递数据

    前言 在UWA学堂上线那天,我买了招文勇这篇Lua交互的课程,19块还算值,但是前段时间太忙,一直没空研究,他的demo是基于xlua的,今天终于花了大半天时间在tolua下跑起来了,记录一下我的理解 ...

  10. 【MySQL】(七)事务

    我的个人博客 http://www.haxianhe.com/ 数据库系统引入事务的主要目的:事务会把数据库从一种状态转换为另一种一致状态.在数据库提交工作时,可以确保要么所有修改都已经保存了,要么所 ...