使用 log4j 2记录日志
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记录日志的更多相关文章
- log4j记录日志到指定文件
新建类文件: import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; /** * 记录日志到指定文件 ...
- 从零开始学 Java - log4j 项目中的详细配置
你还会用笔来写字么 我是不怎么会了,有时候老是拿起笔之后不知道这个字怎么写,这时候就会拿起手机去打出来:有时候还会写出来这个字之后越看越不像,这时候就开始怀疑自己的能力了:有时候写出来了一大堆字之后, ...
- 我认识的log4j开源日志
Log4j 在java中如何配置log4j!! 步骤: ①引入jar包,推荐新建一个lib文件夹,用来装所有的jar包(还要进行下图内的操作) 之后项目中就会多出一个引入外部Library的项目 ②创 ...
- 【JavaEE】SSH+Spring Security基础上配置AOP+log4j
Spring Oauth2大多数情况下还是用不到的,主要使用的还是Spring+SpringMVC+Hibernate,有时候加上SpringSecurity,因此,本文及以后的文章的example中 ...
- Java 中Log4j的使用详情
Log4j 真的很简单,简单到令人发指的地步.不是要记录日志吗?那就给你一个Log ,然后你用Log 来写东西就行了,先来一个完整类示例: package test; import org.apach ...
- log4j学习总结
一直使用log4j来记录日志,但是一直以来没有深入研究过log4j,最近研究了下log4j,下面总结一下: log4j配置: 1. 配置根Logger,其语法为: log4j.rootLogger = ...
- Log4j使用笔记
在工作过程中,常常需要查看后台日志,为了更好的记录日志,我们使用Log4j来记录日志. 一.maven依赖的配置 在maven中央库库里找到log4j的java包,添加 ...
- 在android中配置 slf4j + log4j 日志记录框架
需求: 在项目开发中,需要记录 操作日志 .起初自己写了个简单的日志记录文本写入到文本的方法,后来随着项目的膨胀,需要考虑更多的操作,开始考虑性能问题. 实现: 考虑使用 slf4j + log4j ...
- Log4j最简入门及实例
Log4j真的很简单,简单到令人发指的地步.不是要记录日志吗?那就给你一个Log,然后你用Log来写东西就行了,先来一个完整类示例: package test; import org.apache.c ...
随机推荐
- matlab mex中C++内存全局共享和持久化
为提高matlab程序运行速度,经常将核心程序编写为mex动态链接库: 然而,经常情况下,在mex函数中分配的内存或句柄希望在mex函数调用完成后在后续函数调用中能够共享而不被释放,本程序方法为解决该 ...
- 接口安全--http数字签名
原文:https://blog.csdn.net/u011521890/article/details/55506716 import java.io.UnsupportedEncodingExcep ...
- Ext各种对话框
<HTML> <HEAD> <TITLE>选择确认对话框</TITLE> <link rel="stylesheet" typ ...
- Silverlight:《Pro Silverlight5》读书笔记 之 Layout
Layout The Layout Containers The Panel Background By default, the Background of a layout panel is se ...
- appium+python自动化98-非select弹出选择框定位解决
前言 遇到问题:document.getElementsByClassName(...)[0] is undefined 选择框如果是select标签的,可以直接用select专用的方法去定位点击操作 ...
- telnet用法 测试端口号
Telnet是进行远程登录的标准协议和主要方式它为用户提供了在本地计算机上完成远程主机工作的能力.可以用telnet命令来测试端口号是否正常打开还是关闭状态. 工具/原料 电脑 cmd命令 方法/步骤 ...
- 覆写Activity的finish()方法
MainActivity如下: package cn.testfinish; import android.app.Activity; import android.os.Bundle; import ...
- 使用swig将C/C++代码转为JAVA接口(Windows平台)
小弟一直没用过Linux. 平时的码也只是在WINDOW上用SWIG或CYGWIN进行编译. 下面的例子,先从网上找来一个.c文件. example.c /* File : example.c */ ...
- 漏洞预警 | ECShop全系列版本远程代码执行高危漏洞
2018年9月1日,阿里云态势感知发布预警,近日利用ECShop全系列版本的远程代码执行漏洞进行批量化攻击量呈上升趋势.该漏洞利用简单且危害较大,黑客可通过WEB攻击直接获得服务器权限. 漏洞原理 该 ...
- 科普:UTF-8 GBK UTF8 GB2312 之间的区别和关系
UTF-8:Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM.是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三 ...