jboss as 6 配置log4j发送错误日志文件

时间:2021-03-26 21:20:53

最近想把错误日志发到邮箱里,以便及时发现应用出了什么异常。

用的应用服务器是jboss as 6 final.

这个版本带的log4j,jar,不知道是什么版本的,没有SMTUsername和SMTPassword 。这两个属性用于登录邮箱服务器。

所以换成了log4j-1.25.jar .

配置jboss-logging.xml,在%JBOSS_HOME%\server\default\deploy\ 下面。

  <!-- EMail events to an administrator 

-->

<log4j-appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
<error-manager>
<only-once/>
</error-manager>

<level name="ERROR"/>

<properties>
<property name="to">xxx@xx.com</property>

<!-- 多个人 用逗号分开

<property name="to">xxx@xx.com,xxx@xx.com</property>
抄送,密送

<property name="cc">xxx@xx.com,xxx@xx.com</property>

<property name="bcc">xxx@xx.com,xxx@xx.com</property>

-->

<property name="from">xxx@xxxx.com</property> <property name="subject">JBoss Sever Errors</property> <property name="SMTPHost">xxx.com</property>

<property name="SMTPUsername">xxxx</property>

<property name="SMTPPassword">xxxx</property>

<property name="bufferSize">512</property> </properties> <formatter> <pattern-formatter pattern="%d %-5p [%c] (%t) %m%n"/> </formatter> </log4j-appender> <root-logger> <!-- Set the root logger priority via a system property, with a default value. --> <level name="${jboss.server.log.threshold:INFO}"/> <handlers> <handler-ref name="CONSOLE"/> <handler-ref name="FILE"/>

<handler-ref name="SMTP"/>

</handlers> </root-logger>



 
 
 
 
 
 
 
 
 
 
 
 
 
 
 



配置好后,运行,当产生错误时,报异常了,

ERROR [STDERR] log4j:ERROR Message object not configured.

在jboss社区找到了,解决方法。

https://issues.jboss.org/browse/JBAS-8791

需要替换3个jar包       http://download.csdn.net/detail/zuxianghuang/5689569jboss-logmanager

jboss-logmanager.jar ,jboss-logmanager-log4j.jar,logging-service-metadata.jar

jboss-logmanager.jar这个替换%JBOSS_HOME%\lib\下面的

jboss-logmanager-log4j.jar这个替换%JBOSS_HOME%\common\lib下面的

logging-service-metadata.jar这个替换%JBOSS_HOME%\server\default\deployers\jboss-logging.deployer\下面的

经过这些配置,就可以通过log4j发错误日志到,邮箱了。

<property name="bufferSize">512</property>  这个是邮件的大小默认512。可以根据情况设置。