1 学习配置log4j
在Tomcat和JBoss上,配置方便不太相同。具体如下:
在tomcat下,直接在deploy程序的classes下,配置log4j.properties或者log4j.xml即可,可以用具体的Appender,如File,Console,Smtp等等,直接对应到要操作的类就行。
在jboss下,由于jboss自己接管了log4j系统,所以,要想正确记录log,需要配置jboss自己的log4j.xml文件,或者,自己接管jboss的log系统,用自己的log4j配置文件替换jboss的log4j.xml
具体例如,在jboss的log4j.xml文件中添加如下代码:
<!-- VELT rolling appender -->
<appender name="VELT_FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.home.dir}/log/velt.log"/>
<param name="Append" value="false"/>
<!-- Rollover at midnight each day -->
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<!-- Rollover at the top of each hour
<param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
-->
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message/n -->
<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
<!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message/n
<param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
-->
</layout>
</appender>
<!-- VELT smtp appender -->
<appender name="VELT_SMTP" class="org.apache.log4j.net.SMTPAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="Threshold" value="ERROR"/>
<param name="To" value= www@xxx.com/>
<param name="From" value=xxx @xxx.com/>
<param name="Subject" value="VELT System Errors Info"/>
<param name="SMTPHost" value="host"/>
<param name="BufferSize" value="10"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
</layout>
</appender>
<!--VELT com.doublebridge-->
<category name="com.doublebridge">
<level value="INFO" />
<appender-ref ref="VELT_FILE"/>
<appender-ref ref="VELT_SMTP"/>
</category>
<!--VELT net.sf.hibernate-->
<category name="net.sf.hibernate">
<level value="INFO" />
<appender-ref ref="VELT_FILE"/>
<appender-ref ref="VELT_SMTP"/>
</category>
目前疑问:
1 如何生成格式文件,例如:xxxx_20050420.log
2 SMTPAppender方式,当smtp服务器要求认证,如何设置参数?
在Tomcat和JBoss上,配置方便不太相同。具体如下:
在tomcat下,直接在deploy程序的classes下,配置log4j.properties或者log4j.xml即可,可以用具体的Appender,如File,Console,Smtp等等,直接对应到要操作的类就行。
在jboss下,由于jboss自己接管了log4j系统,所以,要想正确记录log,需要配置jboss自己的log4j.xml文件,或者,自己接管jboss的log系统,用自己的log4j配置文件替换jboss的log4j.xml
具体例如,在jboss的log4j.xml文件中添加如下代码:
<!-- VELT rolling appender -->
<appender name="VELT_FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.home.dir}/log/velt.log"/>
<param name="Append" value="false"/>
<!-- Rollover at midnight each day -->
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<!-- Rollover at the top of each hour
<param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
-->
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message/n -->
<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
<!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message/n
<param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
-->
</layout>
</appender>
<!-- VELT smtp appender -->
<appender name="VELT_SMTP" class="org.apache.log4j.net.SMTPAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="Threshold" value="ERROR"/>
<param name="To" value= www@xxx.com/>
<param name="From" value=xxx @xxx.com/>
<param name="Subject" value="VELT System Errors Info"/>
<param name="SMTPHost" value="host"/>
<param name="BufferSize" value="10"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/>
</layout>
</appender>
<!--VELT com.doublebridge-->
<category name="com.doublebridge">
<level value="INFO" />
<appender-ref ref="VELT_FILE"/>
<appender-ref ref="VELT_SMTP"/>
</category>
<!--VELT net.sf.hibernate-->
<category name="net.sf.hibernate">
<level value="INFO" />
<appender-ref ref="VELT_FILE"/>
<appender-ref ref="VELT_SMTP"/>
</category>
目前疑问:
1 如何生成格式文件,例如:xxxx_20050420.log
2 SMTPAppender方式,当smtp服务器要求认证,如何设置参数?