4

以前のバージョンの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>

これでJbossAS7にアップグレードしました。これは問題ないようです$JBOSS_HOME/standalone/configuration/standalone.xmlが、構文が異なります。

私の質問は、SYSLOGアペンダーを使用するようにJboss AS 7を設定するにはどうすればよいですか?

4

5 に答える 5

8

log4jは、syslogアペンダーがないため、JBossAS7では使用されなくなりました。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>
于 2012-05-01T15:58:13.450 に答える
1

これは、log4jSyslogAppenderに単純に委任するLogHandlerの簡単な実装の1つです。http://randomtekkstuff.blogspot.in/2013/03/jboss-as-7-syslog-handler.html。jbossモジュールとしてデプロイできます

于 2013-03-10T20:13:11.053 に答える
0

私も同じ問題を抱えていました。上記の答えから始めて、自分でバージョンを実装しました。構成ファイルと一緒に、Githubで私のソリューションを見つけることができます

于 2012-08-21T20:32:21.710 に答える
0

JBoss ASのバージョン7.2.x以降、Log4jの古いスタイルのAppenderを使用できます。

詳細については、 https://issues.jboss.org/browse/AS7-4925を参照してください。

于 2013-02-07T12:22:54.397 に答える
0

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

于 2016-07-06T08:41:48.017 に答える