pender.appenderName.layout.option = valueN
Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
例子1:
#log4j.rootLogger = [ level ] , appenderName, appenderName, …
log4j.rootLogger=INFO, A1 ,R
#这一句设置以为着所有的log都输出
#如果为log4j.rootLogger=WARN,则意味着只有WARN,ERROR,FATAL被输出,DEBUG,INFO将被屏蔽掉.
# A1 is set to be a ConsoleAppender.
#log4j中Appender有几层如控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIXSyslog守护进程等
#ConsoleAppender输出到控制台
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 使用的输出布局
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
#灵活定义输出格式 具体查看log4j javadoc org.apache.log4j.PatternLayout
#d 时间 ....
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}[%c]-[%p] %m%n
#R 输出到文件 RollingFileAppender的扩展,可以提供一种日志的备份功能。
log4j.appender.R=org.apache.log4j.RollingFileAppender
#日志文件的名称
log4j.appender.R.File=log4j.log
#日志文件的大小
log4j.appender.R.MaxFileSize=100KB
# 保存一个备份文件
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.TTCCLayout
log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}[%c]-[%p] %m%n
例子2 :
# log4j.properties
# Set root category priority to DEBUG and its only appender toA1.
# 设置com.ccit域对应的级别DEBUG和输出地A1,A2
log4j.category.com.ccit=DEBUG,A1,A2
log4j.appender.A2=org.apache.log4j.ConsoleAppender
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.Encoding=ISO-8859-1
log4j.appender.A2.layout.ConversionPattern=%5p [%t] (%F:%L) -%m%n
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.Encoding=ISO-8859-1
log4j.appender.A1.File=log/server.log
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d %5p [%t] (%F:%L) -%m%n
java文件中初始化log4j配置:
String dir = System.getProperty('user.dir'); // 获得当前程序所在路径
System.out.println('log4j = ' + dir +'/conf/log4j.properties');
// 初始化log4j org.apache.log4j.PropertyConfigurator
PropertyConfigurator.configure('./conf/log4j.properties');
读取配置文件的三种方法:
//自动快速地使用缺省Log4j环境。fileappender rolloverfileappender rollover
BasicConfigurator.configure ();
//读取使用Java的特性文件编写的配置文件
PropertyConfigurator.configure ( String configFilename);
//读取XML形式的配置文件
DOMConfigurator.configure ( String filename );
日志级别分离
一、 Tomcat日志分离
修改war包中的log4j.properties文件
增加红色字体的配置信息(两处修改):
# Set root category priority to DEBUG and its only appender toA1.
#log4j.rootCategory=DEBUG, A1
#add a root category named 'f2'
log4j.rootCategory=INFO, stdout,f1,f2
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd} %5p[%t] (%F:%L) - %m%n
# Pattern to output the caller's file name and line number.
log4j.appender.f1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.f1.File=../logs/raweb.log
log4j.appender.f1.layout=org.apache.log4j.PatternLayout
log4j.appender.f1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}%5p (%F:%L) - %m%n
#set information level to 'ERROR'
log4j.appender.f2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.f2.Threshold=ERROR
log4j.appender.f2.File=../logs/raweb_error.log
log4j.appender.f2.layout=org.apache.log4j.PatternLayout
log4j.appender.f2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}%5p (%F:%L) - %m%n
二、 Jboss日志分离
修改jboss-4.2.3.GA\server\default\conf jboss-log4j.xml文件
增加红色字体的配置信息(两处修改):
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE log4j:configuration SYSTEM 'log4j.dtd'>
<!--=====================================================================-->
<!-- -->
<!-- Log4j Configuration -->
<!-- -->
<!--=====================================================================-->
<!-- $Id: jboss-log4j.xml 75507 2008-07-08 20:15:07Zstan.silvert@jboss.com $ -->
<!--
| For more configuration infromation and examples see the JakartaLog4j
| owebsite:
-->
<log4j:configurationxmlns:log4j='http://jakarta.apache.org/log4j/'debug='false'>
<!-- ================================= -->
<!-- Preserve messages in a local file -->
<!-- ================================= -->
<!-- A time/date based rolling appender -->
<appender>
<errorHandler/>
<paramvalue='${jboss.server.log.dir}/server.log'/>
<param value='false'/>
<!-- Rollover at midnight each day -->
<param value=''.'yyyy-MM-dd'/>
<!-- Rollover at the top of each hour
<param value=''.'yyyy-MM-dd-HH'/>
-->
<layout>
<!-- The default pattern: Date Priority [Category] Message\n-->
<param value='%d %-5p [%c]%m%n'/>
<!-- The full pattern: Date MS Priority [Category] (Thread:NDC)Message\n
<param value='%d %-5r %-5p [%c] (%t:%x)%m%n'/>
-->
</layout>
</appender>
<appender>
<errorHandler/>
<paramvalue='${jboss.server.log.dir}/server_error.log'/>

<param value='false'/>
<param value='ERROR'/>
<!-- Rollover at midnight each day -->
<param value=''.'yyyy-MM-dd'/>
<!-- Rollover at the top of each hour
<param value=''.'yyyy-MM-dd-HH'/>
-->
<layout>
<!-- The default pattern: Date Priority [Category] Message\n-->
<param value='%d %-5p [%c]%m%n'/>
<!-- The full pattern: Date MS Priority [Category] (Thread:NDC)Message\n
<param value='%d %-5r %-5p [%c] (%t:%x)%m%n'/>
-->
</layout>
</appender>
<!-- A size based file rolling appender
<appender>
<errorHandler/>
<paramvalue='${jboss.server.log.dir}/server.log'/>
<param value='false'/>
<param value='500KB'/>
<param value='1'/>
<layout>
<param value='%d %-5p [%c]%m%n'/>
</layout>
</appender>
-->
<!-- ============================== -->
<!-- Append messages to the console -->
<!-- ============================== -->
<appender>
<errorHandler/>
<param value='System.out'/>
<param value='INFO'/>
<layout>
<!-- The default pattern: Date Priority [Category] Message\n-->
<param value='%d{ABSOLUTE} %-5p [%c{1}]%m%n'/>
</layout>
</appender>
<!-- ====================== -->
<!-- More Appender examples -->
<!-- ====================== -->
<!-- Buffer events and log them asynchronously
<appender>
<errorHandler/>
<appender-ref ref='FILE'/>
<appender-ref ref='CONSOLE'/>
<appender-ref ref='SMTP'/>
</appender>
-->
<!-- EMail events to an administrator
<appender>
<errorHandler/>
<param value='ERROR'/>
<param value='admin@myhost.domain.com'/>
<param value='nobody@myhost.domain.com'/>
<param value='JBoss Sever Errors'/>
<param value='localhost'/>
<param value='10'/>
<layout>
<param value='[%d{ABSOLUTE},%c{1}]%m%n'/>
</layout>
</appender>
-->
<!-- Syslog events
<appender>
<errorHandler/>
<param value='LOCAL7'/>
<param value='true'/>
<param value='localhost'/>
<layout>
<param value='[%d{ABSOLUTE},%c{1}]%m%n'/>
</layout>
</appender>
-->
<!-- Log events to JMS (requires a topic to be created)
<appender>
<errorHandler/>
<param value='ERROR'/>
<paramvalue='java:/ConnectionFactory'/>
<paramvalue='topic/MyErrorsTopic'/>
</appender>
-->
<!-- Log events through SNMP
<appender>
<errorHandler/>
<paramvalue='org.apache.log4j.ext.JoeSNMPTrapSender'/>
<param value='127.0.0.1'/>
<paramvalue='162'/>
<param value='1.3.6.1.4.1.24.0'/>
<param value='127.0.0.1'/>
<param value='161'/>
<param value='6'/>
<param value='12345678'/>
<param value='public'/>
<param value='true'/>
<param value='DEBUG'/>
<paramvalue='1.3.6.1.4.1.24.12.10.22.64'/>
<layout>
<paramvalue='%d,%p,[%t],[%c],%m%n'/>
</layout>
</appender>
-->
<!-- Emit events as JMX notifications
<appender>
<errorHandler/>
<param value='WARN'/>
<paramvalue='jboss.system:service=Logging,type=JMXNotificationAppender'/>
<layout>
<param value='%d %-5p [%c]%m'/>
</layout>
</appender>
-->
<!-- ================ -->
<!-- Limit categories -->
<!-- ================ -->
<!-- Limit the org.apache category to INFO as its DEBUG isverbose -->
<category>
<priority value='INFO'/>

</category>
<!-- Limit the jacorb category to WARN as its INFO is verbose-->
<category>
<priority value='WARN'/>
</category>
<!-- Limit the org.jgroups category to WARN as its INFO isverbose -->
<category>
<priority value='WARN'/>
</category>
<!-- Limit the org.quartz category to INFO as its DEBUG isverbose -->
<category>
<priority value='INFO'/>
</category>
<!-- Limit JSF logging to DEBUG. FINER and FINEST will not belogged -->
<category>
<priority value='DEBUG' />
</category>
<!-- Limit JBoss categories
<category>
<priority value='INFO'/>
</category>
-->
<!-- Limit the JSR77 categories -->
<category>
<priority value='INFO'/>
</category>
<!-- Show the evolution of the DataSource pool in the logs[inUse/Available/Max]
<category>
<priority value='TRACE'/>
</category>
-->
<!-- Limit the org.jboss.serial (jboss-serialization) to INFO asits DEBUG is verbose -->
<category>
<priority value='INFO'/>
</category>
<!-- Decrease the priority threshold for the org.jboss.variacategory
<category>
<priority value='DEBUG'/>
</category>
-->
<!-- Enable JBossWS message tracing
<category>
<priority value='TRACE'/>
</category>
-->
<!--
| An example of enabling the custom TRACE level priority that isused
| by the JBoss internals to diagnose low level details. Thiample
| turns on TRACE level msgs for the org.jboss.ejb.plugins packageand its
| subpackages. This will produce A LOT of logging output.
|
| Note: since jboss AS 4.2.x, the trace level is supported nativelyby
| log4j, so although the custom org.jboss.logging.XLevel prioritywill
| still work, there is no need to use it. The two examples thatfollow
| will both enable trace logging.
<category>
<priority value='TRACE'/>
</category>
<category>
<priority value='TRACE'/>
</category>
-->
<!--
| Logs these events to SNMP:
- server starts/stops
- cluster evolution (node death/startup)
- When an EJB archive is deployed (and associated verifiedmessages)
- When an EAR archive is deployed
<category>
<priority value='INFO' />
<appender-ref ref='TRAP_LOG'/>
</category>
<category>
<priority value='INFO' />
<appender-ref ref='TRAP_LOG'/>
</category>
<category>
<priority value='ERROR' />
<appender-ref ref='TRAP_LOG'/>
</category>
<category>
<priority value='INFO' />
<appender-ref ref='TRAP_LOG'/>
</category>
<category>
<priority value='INFO' />
<appender-ref ref='TRAP_LOG'/>
</category>
-->
<!-- Clustering logging -->
<!-- Uncomment the following to redirect the org.jgroupsand
org.jboss.ha categories to a cluster.log file.
<appender>
<errorHandler/>
<paramvalue='${jboss.server.log.dir}/cluster.log'/>
<param value='false'/>
<param value='500KB'/>
<param value='1'/>
<layout>
<param value='%d %-5p [%c]%m%n'/>
</layout>
</appender>
<category>
<priority value='DEBUG' />
<appender-ref ref='CLUSTER'/>
</category>
<category>
<priority value='DEBUG' />
<appender-ref ref='CLUSTER'/>
</category>
-->
<!-- ======================= -->
<!-- Setup the Root category -->
<!-- ======================= -->
<root>
<appender-ref ref='CONSOLE'/>
<appender-ref ref='FILE'/>
<appender-ref ref='ERRORFILE'/>
</root>
</log4j:configuration>
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-30994-1.html