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. kindeditor老版本version 4.1.10 bug踩坑

    目录 上传图片或者视频的弹窗有时候不出现,只出现遮罩 视频上传无法播放的问题 参考链接: 问题目录 上传图片或者视频的弹窗有时候不出现,只出现遮罩 通过测试发现,出现这种情况不是弹出框没有出现,而是设 ...

  2. 使用BabeLua3.x在cocos2d-x中编辑和调试Lua

    BabeLua是一款基于VS2012/2013的Lua集成开发环境,具有Lua语法高亮,语法检查,自动补全,快速搜索,注入宿主程序内对Lua脚本进行调试,设置断点观察变量值,查看堆栈信息等功能. 如何 ...

  3. react组件引用时的default常见错误

    1.下面使用方法是正确的: export class StepLoad extends React.Component {} 引用上面插件的方法,重命名 import {StepLoad as Ste ...

  4. Spark应用程序运行的日志存在哪里(转)

    原文链接:Spark应用程序运行的日志存在哪里 在很多情况下,我们需要查看driver和executors在运行Spark应用程序时候产生的日志,这些日志对于我们调试和查找问题是很重要的. Spark ...

  5. Android内存调试命令

    adb shell dumpsys meminfo 包名 比如: adb shell dumpsys meminfo cn.com.test

  6. 修改url地址参数

    使用changeURLPar('http://www.baidu.com?page=2&bb=cc','page',10) 得到结果http://www.baidu.com?page=10&a ...

  7. swfupload js中 file 对象的属性

    name=3cc68cfc60b87e6dd6887d8a.jpg modificationdate=Wed   Apr 21 15:48:30 UTC+0800 2010 filestatus=-1 ...

  8. Python+Django+SAE系列教程13-----MySQL记录的添\删\改

    建立了数据库后,我们就来做一个简单的表(person_classroom)的加入.删除.改动的操作. 首先我们建立一个加入的页面的模板Classroom_Add.html(加入的表单)并把它放在Bid ...

  9. 【转】 Python 中,matplotlib绘图无法显示中文的问题

    在python中,默认情况下是无法显示中文的,如下代码: import matplotlib.pyplot as plt # 定义文本框和箭头格式 decisionNode = dict(boxsty ...

  10. JUnit单元测试基础要点

    JUnit单元测试基础要点 1.JUnit是一种测试代码的框架,测试的目的是:保证代码没错,而不是保证代码正确. 2.测试类一般不要和目标类放在一起,但编译成的class文件是放在一起的. 3.单元测 ...