java web 配置log4j2,Java for Web学习笔记(五十):Log(2)配置log4j2

相关maven

org.apache.logging.log4j

log4j-api

2.8.1

compile

org.apache.logging.log4j

log4j-core

2.8.1

runtime

org.apache.logging.log4j

log4j-jcl

2.8.1

runtime

org.apache.logging.log4j

log4j-slf4j-impl

2.8.1

runtime

org.apache.logging.log4j

log4j-taglib

2.8.1

runtime

配置文件位置

缺省位置

缺省是在console中显示error级别。配置文件依次寻找为

log4j.configurationFile

log4j2-test.json 或 log4j2-test.jsn

log4j2-test.xml

log4j2.json 或 log4j2.jsn

log4j2.xml

可以在代码中指定位置

开发中缺省位置如下,war包将存放在classpath中。

0818b9ca8b590ca3270a3433284dd417.png

指定配置文件

private static Logger logger = null;

/**

* 指定log4j2的配置文件

* 参考:http://logging.apache.org/log4j/2.x/log4j-core/apidocs/index.html

*

* @param file 配置文件名字,建议绝对路径的方式

* @throws FileNotFoundException 异常

* @throws IOException 异常

*/

public static void initLogger(String file) throws FileNotFoundException,IOException{

ConfigurationSource source = new ConfigurationSource(new FileInputStream(file),new File(file));

Configurator.initialize(null, source);

//【注意】必须要初始化之后,才设置logger的值,否则会出错。

logger = LogManager.getLogger();

}

编写配置文件

一个简单的配置文件   我们先从一个极为简单的配置文件开始

appender   在appenders中可以定义多个appender,在实际应用中,我们希望将log记录在文件中,以便事后调阅,相关的appender如下:

/usr/local/log

mytest

... 其他 appender ...

......

PatternLayout的pattern

这里定义输出log的样式

说明

样式

例子

%d 时间戳

%d{HH:mm:ss.SSS}

%d{yyyy-MM-dd HH:mm:ss.SSS}

%d{DEFAULT}

%d{ISO8601}

%d{UNIX}

%d{UNIX_MILLIS}

16:20:22.257

2017-04-18 16:20:22.257

2017-04-18 16:20:22,257

2017-04-18T16:20:22,257

1492503622

1492503622257

%t 线程名字

[%t]

[localhost-startStop-1]

我们可以利用线程名字,将请求和响应对应起来

%logger,%c:类名

%c

%c{2}

%c{1}

%c{2.}

%c{1.}

cn.wei.flowingflying.chapter10.tictactoe.GlobalListener 全部信息

tictactoe.GlobalListener 显示最后2个

GlobalListener 显示最后1个

cn.we.fl.ch.ti.GlobalListener 缩写2个字母

c.w.f.c.t.GlobalListener 缩写1个字母

%l

cn.wei.flowingflying.chapter10.tictactoe.GlobalListener.contextInitialized(GlobalListener.java:58)

方法名

%M

contextInitialized

文件名字

%F

GlobalListener.java

所在的行号

%L

58

消息

%m %msg %message

换行

%n

日志级别

%level

%X

%X{id}

%X{username}

显示ThreadContext中map里面的信息,在后面详细说明

Loggers   在loggers中定义一个或多个logger,代码中的logger实例将匹配其中某个。

......

Filter   在前面已经提供了fiter的例子

除了在logger外,在Appender也可以定义filter,在configuration下面可以定义context-wide的filter。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值