2012-05-01 70 views
4

在以前版本的JBoss我能够配置SYSLOG附加器与JBoss的-的log4j.xml配置如下:JBoss应用服务器7配置日志记录到系统日志追加程序

<appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender"> 
    <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/> 
    <param name="Facility" value="LOCAL7"/> 
    <param name="FacilityPrinting" value="true"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
    <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/> 
    </layout> 
</appender> 

现在我已经升级到JBoss AS 7,它似乎应该在$JBOSS_HOME/standalone/configuration/standalone.xml去,但语法是不同的。

我的问题是:如何配置Jboss AS 7使用SYSLOG appender?

回答

8

由于没有syslog appender,log4j不再用于JBoss AS 7。如果你想要类似的东西,你将不得不寻找或开发自定义的java.util.logging.Handler

处理程序一旦创建,最好将其设置为模块。假设处理程序名为com.example.logging.SysLogHandler。在$JBOSS_HOME/modules中创建一个名为com/example/logging/main的目录。在该目录中放置您的库并创建module.xml文件,有关示例,请参阅其他模块。

module.xml例如:

<?xml version="1.0" encoding="UTF-8"?> 
<module xmlns="urn:jboss:module:1.1" name="com.example.logging"> 
    <resources> 
     <resource-root path="sys-log.jar"/> 
    </resources> 
    <dependencies> 
     <!-- Insert any dependencies here like the example below --> 
     <!-- <module name="org.jboss.logmanager"/> --> 
    </dependencies> 
</module> 

现在,您可以编辑standalone.xml添加自定义处理程序。

<subsystem xmlns="urn:jboss:domain:logging:1.1"> 
    ... 
    <!-- A syslog handler --> 
    <custom-handler name="syslog" class="com.example.logging.SysLogHandler" module="com.example.logging"> 
     <level name="INFO"/> 
     <formatter> 
      <pattern-formatter pattern="%d{MMM dd HH:mm:ss} %-5p [%c] (%t) %s%n"/> 
     </formatter> 
     <properties> 
      <!-- Set any properties that can accessed through setter methods --> 
      <property name="autoFlush" value="true"/> 
     </properties> 
    </custom-handler> 
    ... 
    <root-logger> 
     <level name="INFO"/> 
     <handlers> 
      <handler name="CONSOLE"/> 
      <handler name="FILE"/> 
      <handler name="syslog"/> 
     </handlers> 
    </root-logger> 
</subsystem> 
+0

我写我自己的/发现系统日志后处理程序如何在standalone.xml中配置它?我在哪里放置jar文件? $ JBOSS_HOME /独立/ lib/ext目录? –

+0

您将使用'<自定义处理程序/>'。我会用一个例子来更新答案。决定把它放在哪里取决于你想如何使用它。我会采取的做法可能会使它成为一个模块。 –

+0

感谢您的帮助! –

0

我有同样的问题,并从上面的答案开始,我自己实现了一个版本。与配置文件一起,您可以在Github

0

的JBoss AS 7.2有系统日志处理程序,所以你可以使用:

<syslog-handler name="SYSLOG"> 
    <level name="DEBUG" /> 
    <server-address value="<syslog.server>"/> 
    <port value="<syslog.port>"/> 
</syslog-handler> 

... 

<root-logger> 
    <handlers> 
    ... 
     <handler name="SYSLOG" /> 
    ... 
    </handlers> 
</root-logger> 

在文档更多信息: https://docs.jboss.org/author/display/AS72/Admin+Guide#AdminGuide-sysloghandler

相关问题