Log4j in Action——日志格式

log4j日志格式化

Apache log4j 提供了各种布局对象,每一个对象都可以根据各种布局格式记录数据。另外,也可以创建一个布局对象格式化测井数据中的特定应用的方法。
所有的布局对象 - Appender对象收到 LoggingEvent 对象。布局对象检索来自LoggingEvent 的消息参数,并应用适当的 ObjectRenderer 获得消息的字符串表示。

布局方法:
在这里插入图片描述

log4j HTMLLayout

如果想生成一个HTML格式的文件,日志信息,那么可以使用 org.apache.log4j.HTMLLayout 格式化日志信息。
HTMLLayout是一个非常简单的布局对象,它提供以下方法:
在这里插入图片描述
以下是对HTMLLayout一个简单的配置文件:

# Define the root logger with appender file
log = src/main/java/com/leesanghyuk/tst
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/htmlLayout.html

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.HTMLLayout
log4j.appender.FILE.layout.Title=HTML Layout Example
log4j.appender.FILE.layout.LocationInfo=true

程序还是原来的程序,我们运行看看,结果如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>HTML Layout Example</title>
<style type="text/css">
<!--
body, table {font-family: arial,sans-serif; font-size: x-small;}
th {background: #336699; color: #FFFFFF; text-align: left;}
-->
</style>
</head>
<body bgcolor="#FFFFFF" topmargin="6" leftmargin="6">
<hr size="1" noshade>
Log session start time Tue Nov 06 14:11:14 CST 2018<br>
<br>
<table cellspacing="0" cellpadding="4" border="1" bordercolor="#224466" width="100%">
<tr>
<th>Time</th>
<th>Thread</th>
<th>Level</th>
<th>Category</th>
<th>File:Line</th>
<th>Message</th>
</tr>

<tr>
<td>0</td>
<td title="main thread">main</td>
<td title="Level"><font color="#339933">DEBUG</font></td>
<td title="com.leesanghyuk.tst.Log4jExample category">com.leesanghyuk.tst.Log4jExample</td>
<td>Log4jExample.java:9</td>
<td title="Message">hello,this is a debug</td>
</tr>

<tr>
<td>3</td>
<td title="main thread">main</td>
<td title="Level">INFO</td>
<td title="com.leesanghyuk.tst.Log4jExample category">com.leesanghyuk.tst.Log4jExample</td>
<td>Log4jExample.java:10</td>
<td title="Message">hello, htis is an info message</td>
</tr>

打开网页看起来是这样的:
在这里插入图片描述

log4j PatternLayout

如果想生成基于模式的特定格式的日志信息,那么可以使用 org.apache.log4j.PatternLayout 格式化日志信息。 PatternLayout类扩展抽象 org.apache.log4j.Layout 类并覆盖format()方法根据提供的模式构建日志信息。 PatternLayout也是一个简单的布局对象,它提供下列Bean属性,可以通过配置文件进行设置:

conversionPattern
设置转换模式。默认为 %r [%t] %p %c %x - %m%n

# Define the root logger with appender file
log = src/main/java/com/leesanghyuk/tst
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd}-%t-%x-%-5p-%-10c:%m%n

运行结果如下:

2018-11-06-main--DEBUG-com.leesanghyuk.tst.Log4jExample:hello,this is a debug
2018-11-06-main--INFO -com.leesanghyuk.tst.Log4jExample:hello, htis is an info message
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值