logging - JBoss AS 7 配置日志记录到 Syslog Appender

标签 logging log4j jboss7.x syslog rsyslog

在以前版本的 Jboss 中,我能够在 jboss-log4j.xml 中使用以下配置来配置 SYSLOG 附加程序:

<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 附加程序?

最佳答案

JBoss AS 7 中不再使用 log4j,因为没有 syslog 附加程序。您必须找到或开发一个自定义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>

关于logging - JBoss AS 7 配置日志记录到 Syslog Appender,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10400263/

相关文章:

java - Log4J 中的阈值是什么意思?

c++ - 带有文件名、行和时间戳的记录器

python - 如何在 apache 下从 mod_python 写入日志?

java - 日志级别的数值有哪些用例?

java - Tomcat 4.1.24、slf4j 1.6.4 和 activemq 5.5.1 不兼容

logging - Log4J 2.0 是否会发布(如果发布,何时发布)?

python - 使用多个模块进行 Python 日志记录的常见/标准做法是什么?

java - Jboss 在类路径上未检测到 Spring WebApplicationInitializer 类型

web-services - 使用 CXF 2.5.2 和 JBoss AS 7 的问题

oracle11g - JBoss AS 7.1.1 下奇怪的 Oracle 11g JDBC 驱动程序错误