java日志组件总结
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class TestLog {
Log log = LogFactory.getLog(TestLog.class);
public void print() {
if (log.isDebugEnabled()) {
log.debug(sql);
log.debug("My name is " + name + ", I am " + age + " years old.");
}
}
}
|
1
2
3
4
5
6
7
8
9
10
11
|
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TestLogBySlf4J {
Logger logger = LoggerFactory.getLogger(TestLogBySlf4J.class);
public void print() {
logger.debug(sql);
logger.debug("My name is {}, I am {} years old.", name, age);
}
}
|
四、相关配置
日志配置参数说明
%m |
输出代码中指定的消息 |
%p |
输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL |
%r |
输出自应用启动到输出该log信息耗费的毫秒数 |
%c |
输出所属的类目,通常就是所在类的全名 |
%t |
输出产生该日志事件的线程名 |
%n |
输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n” |
%d |
输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921 |
%l |
输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10) |
以下是一个完整的log4j.properties
1
2
3
4
5
6
7
8
9
10
|
log4j.rootCategory=error, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p : %c(%L) -> %m%n
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=/home/httpd/html/gameStatistics/log/stats.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d %p : %c(%L) -> %m%n
log4j.logger.org.apache.commons=error
log4j.logger.com.danga.MemCached.MemCachedClient=ERROR
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--定义时间戳-->
<timestamp key="byDay" datePattern="yyyy-MM-dd"/>
<!--定义指定文件名称的输出-->
<appender name="RootFileAppender" class="ch.qos.logback.core.FileAppender">
<!--此处设定的文件名称是动态设置的 即每天生成一个文件用于记录当天的文件信息-->
<file>/home/httpd/html/gameStatistics/log/stats-${byDay}.log</file>
<append>true</append>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss}, %p, %c, %t, %F, %L, %C{1}, %M %m%n</pattern>
</layout>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
<!--过滤器指定该类的日志级别-->
</appender>
<!--定义控制台输出-->
<appender name="RootConsoleAppender" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy-MM-dd HH:mm:ss}, %p, %c, %t, %F, %L, %C{1}, %M %m%n</pattern>
</layout>
</appender>
<!-- 设置根 的日志级别,根元素是配置文件的入口-->
<root>
<level value="error"/>
<appender-ref ref="RootFileAppender"/> <!-- 配置对RootFileAppender的引用-->
<appender-ref ref="RootConsoleAppender"/> <!-- 配置对RootConsoleAppender的引用-->
</root>
</configuration>
|
log4j.xml
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j=' http://jakarta.apache.org/log4j/' >
<appender name="myConsole" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="[%d{dd HH:mm:ss,SSS\} %-5p] [%t] %c{2\} - %m%n" />
</layout>
<!--过滤器设置输出的级别-->
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="levelMin" value="debug" />
<param name="levelMax" value="warn" />
<param name="AcceptOnMatch" value="true" />
</filter>
</appender>
<appender name="myFile" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="D:/output.log" /><!-- 设置日志输出文件名 -->
<!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
<param name="Append" value="true" />
<param name="MaxBackupIndex" value="10" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%p (%c:%L)- %m%n" />
</layout>
</appender>
<appender name="activexAppender" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="E:/activex.log" />
<param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="[%d{MMdd HH:mm:ss SSS\} %-5p] [%t] %c{3\} - %m%n" />
</layout>
</appender>
<!-- 指定logger的设置,additivity指示是否遵循缺省的继承机制-->
<logger name="com.runway.bssp.activeXdemo" additivity="false">
<priority value ="info"/>
<appender-ref ref="activexAppender" />
</logger>
<!-- 根logger的设置-->
<root>
<priority value ="debug"/>
<appender-ref ref="myConsole"/>
<appender-ref ref="myFile"/>
</root>
</log4j:configuration>
|