log4j2使用方法还是很简单的

1 需要使用的jar包有两个,

1)log4j-api-2.8.2.jar

2)log4j-core-2.8.2.jar

2 产生Logger 对象非常的简单,使用 LogManager.getLogger(name) 方法可以获取指定名称的 logger对象。其中 name 是在配置文件中的 logger。配置文件可以是多种的一般使用properties文件或者xml文件,配置文件放在classpath 指定的目录中,因为该组件默认回去classpath路径中查找 log4j2.xml文件或log4j2.properties或log4j2.jsn等。详情请查看官网

我们放到src/目录下即可。

3 配置文件,主要就是配置Loggers 和Appenders。Logger就是配置logger对象, Appender就是说明在哪输出信息。简单例子如下

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" monitorInterval="">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d [%t] %-5level %logger{36} %msg%n" />
</Console>
<RollingFile name="RollingFile" fileName="logs/mylog.log" filePattern="logs/$${date:yyyy-MM}/mylog-%d{MM-dd-HH-mm}-%i.log.gz">
<PatternLayout>
<Pattern>%d %-5level %c{.} [%t] %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval=""/>
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="Console" />
</Root>
<Logger name="mylog" level="warn" additivity="false">
<AppenderRef ref="RollingFile"/>
</Logger>
</Loggers>
</Configuration>

关键字说明,详细说明请查看官网

1)monitorInterval:会自动加载配置文件的时间间隔,单位是秒

PatternLayout 中的格式说明

2)%d:输出日期,默认格式,例如:2012-11-02 14:34:02,781

3)%t: 输出当前线程名称

4)%-5level 输出日志级别,-5表示左对齐并且固定输出5个字符

5)%logger 或 %c  输出logger名称,因为Root Logger没有名称,所以没有输出

6)%msg 日志文本

7)%n 换行

在设置日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出。对于Loggers中level的定义同样适用。

简单代码如下:

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.junit.Test; public class MyLogger {
private Logger myLogger = LogManager.getLogger("mylog"); @Test
public void fun1(){
for(int i=;i<;i++){
myLogger.trace("trace message");
myLogger.info("info message");
myLogger.debug("debug message");
myLogger.warn("warn message");
myLogger.error("error message");
myLogger.fatal("fatal message"); try {
Thread.sleep(*);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
myLogger.error(e);
} } } public static void main(String[] args) {
new MyLogger().fun1();
} }

使用 log4j 2记录日志的更多相关文章

  1. log4j记录日志到指定文件

    新建类文件: import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; /** * 记录日志到指定文件 ...

  2. 从零开始学 Java - log4j 项目中的详细配置

    你还会用笔来写字么 我是不怎么会了,有时候老是拿起笔之后不知道这个字怎么写,这时候就会拿起手机去打出来:有时候还会写出来这个字之后越看越不像,这时候就开始怀疑自己的能力了:有时候写出来了一大堆字之后, ...

  3. 我认识的log4j开源日志

    Log4j 在java中如何配置log4j!! 步骤: ①引入jar包,推荐新建一个lib文件夹,用来装所有的jar包(还要进行下图内的操作) 之后项目中就会多出一个引入外部Library的项目 ②创 ...

  4. 【JavaEE】SSH+Spring Security基础上配置AOP+log4j

    Spring Oauth2大多数情况下还是用不到的,主要使用的还是Spring+SpringMVC+Hibernate,有时候加上SpringSecurity,因此,本文及以后的文章的example中 ...

  5. Java 中Log4j的使用详情

    Log4j 真的很简单,简单到令人发指的地步.不是要记录日志吗?那就给你一个Log ,然后你用Log 来写东西就行了,先来一个完整类示例: package test; import org.apach ...

  6. log4j学习总结

    一直使用log4j来记录日志,但是一直以来没有深入研究过log4j,最近研究了下log4j,下面总结一下: log4j配置: 1. 配置根Logger,其语法为: log4j.rootLogger = ...

  7. Log4j使用笔记

            在工作过程中,常常需要查看后台日志,为了更好的记录日志,我们使用Log4j来记录日志. 一.maven依赖的配置         在maven中央库库里找到log4j的java包,添加 ...

  8. 在android中配置 slf4j + log4j 日志记录框架

    需求: 在项目开发中,需要记录 操作日志 .起初自己写了个简单的日志记录文本写入到文本的方法,后来随着项目的膨胀,需要考虑更多的操作,开始考虑性能问题. 实现: 考虑使用 slf4j + log4j ...

  9. Log4j最简入门及实例

    Log4j真的很简单,简单到令人发指的地步.不是要记录日志吗?那就给你一个Log,然后你用Log来写东西就行了,先来一个完整类示例: package test; import org.apache.c ...

随机推荐

  1. 使用JS在客户端判断当前网络状态

    1. navigator.onLine 2. ajax请求 3. 获取网络资源 1. navigator.onLine 通过navigator.onLine判断当前网络状态: 12345 if(nav ...

  2. (转)RTMP中FLV流到标准h264、aac的转换

    这段时间,工作上的需要,在RTMP上做了flv流到标准h264.AAC的转换,服务器是开源项目CRTMPSERVER,客户端flex编写,视频编码h264,音频编码AAC,现将一些协议相关的东西记录如 ...

  3. Fiddler2 中文手册

    原文:http://blog.sina.com.cn/s/blog_66a13b8f0100vgfi.html 最近一阵研究 Fiddler2 的使用来着,一开始看起来有点找不着北,索性就根据官网资料 ...

  4. [android] Activity 的生命周期 以及横屏竖屏切换时 Activity 的状态变化

    生命周期Android 系统在Activity 生命周期中加入一些钩子,我们可以在这些系统预留的钩子中做一些事情.例举了 7 个常用的钩子:protected void onCreate(Bundle ...

  5. 为jquery ajax请求增加正在运行提示

    在jquery源码中增加showMask()方法调用: if ( xhrSupported ) { jQuery.ajaxTransport(function( options ) { // Cros ...

  6. iTextSharp 合并PDF后,无法删除已经合并的单个文件

    private void MergePDFFiles(string[] fileList, string outMergeFile) { List<PdfReader> readerLis ...

  7. HDU 1232 (13.10.31)

    畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  8. java学习笔记15--多线程编程基础2

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note15.html,转载请注明源地址. 线程的生命周期 1.线程的生命周期 线程从产生到消亡 ...

  9. windows10 phantomjs 安装和使用

    1.下载phantomjs和 Casper phantomjs下载地址:http://phantomjs.org/download.html Casper下载地址:http://casperjs.or ...

  10. 同一个数据库实例,不同用户下多表创建视图,Hibernate完毕ORM映射,Spring整合,后台实现

    1.同一个数据库实例.同用户,多表创建视图 2.同一个数据库实例,不同用户下.多表创建视图 3.同一个数据库,不同数据库实例,多表创建视图 4.不同类型数据库,多表创建视图 1.同一个数据库实例.同用 ...