我如何配置 jboss 来记录到 syslog?
答案1
放类似的东西:
<!-- Syslog events --> <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"/> <param name="SyslogHost" value="localhost"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/> </layout> </appender>
在您的 log4j.conf 中会起作用...只需确保将其调整到您实际想要的,只使用标准 log4j 上下文,您绝对不希望所有 jvm 日志都在大多数应用服务器配置中吐出到 syslog...
答案2
我正在使用这个: https://github.com/kifj/jboss-syslog
<profile>
<subsystem xmlns="urn:jboss:domain:logging:1.2">
+ <custom-handler name="SYSLOG" class="x1.jboss.syslog.SyslogHandler" module="x1.jboss-syslog">
+ <level name="INFO"/>
+ <properties>
+ <property name="loghost" value="localhost"/>
+ <property name="application" value="jboss-as7"/>
+ </properties>
+ </custom-handler>
<console-handler name="CONSOLE">
<level name="INFO"/>
<formatter>
@@ -89,8 +100,7 @@
<root-logger>
<level name="INFO"/>
<handlers>
- <handler name="CONSOLE"/>
- <handler name="FILE"/>
+ <handler name="SYSLOG"/>
</handlers>
</root-logger>
</subsystem>
对于访问日志,它仍然不起作用。标签想要写入文件,但不知道如何在那里使用自定义记录器。
答案3
JBoss AS 7.2 有 syslog 处理程序,因此您可以使用:
<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