2

JBoss 7.1.1 の standalone.xml で Log4j JDBCAppender をセットアップするのに助けが必要です

私は以下のように試しましたが、動作しません

<subsystem xmlns="urn:jboss:domain:logging:1.1">
....
....
....
<custom-handler name="DB" class="org.apache.log4j.jdbc.JDBCAppender" module="org.apache.log4j">
  <level name="ERROR"/>   
  <properties>
    <property name="URL">Data Base URL</property>
    <property name="driver">edb-jdbc14</property>
    <property name="user">username</property>
    <property name="password">password</property>
  </properties>
  <formatter>
  <pattern-formatter pattern="INSERT INTO log_dtl(application_type,thread,class,method,line_no,level,log_date,message_key,message_dtl,message_desc,message_meta_data) VALUES('APP','%t','%c','%M','%L','%p','%d{dd/MM/yyyy HH:mm:ss}','%X{MESSAGE_KEY}','%m','%X{MESSAGE_DESC}','%X{MESSAGE_META_DATA}')" />
  </formatter>
  <drivers>
      <driver name="edb-jdbc14" module="com.edb-jdbc14.postgresDriver">
         <driver-class>com.edb.Driver</driver-class>
      </driver>
  </drivers>                
</custom-handler>
....
....
</subsystem>

エラーログ

14:56:16,881 ERROR [org.jboss.as.server] JBAS015956: Caught exception during boot: org.jboss.as.controller.persistence.ConfigurationPersistenceException: JBAS014676: Failed to parse configuration
    at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:141) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.server.ServerService.boot(ServerService.java:266) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.controller.AbstractControllerService$1.run(AbstractControllerService.java:155) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
    at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_02]
Caused by: java.lang.IllegalArgumentException: newValue is null
    at org.jboss.dmr.ModelNode.set(ModelNode.java:458) [jboss-dmr-1.1.1.Final.jar:1.1.1.Final]
    at org.jboss.as.logging.LoggingSubsystemParser.parsePropertyElement(LoggingSubsystemParser.java:898)
    at org.jboss.as.logging.LoggingSubsystemParser.parseCustomHandlerElement(LoggingSubsystemParser.java:610)
    at org.jboss.as.logging.LoggingSubsystemParser.readElement(LoggingSubsystemParser.java:169)
    at org.jboss.as.logging.LoggingSubsystemParser.readElement(LoggingSubsystemParser.java:113)
    at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:110) [staxmapper-1.1.0.Final.jar:1.1.0.Final]
    at org.jboss.staxmapper.XMLExtendedStreamReaderImpl.handleAny(XMLExtendedStreamReaderImpl.java:69) [staxmapper-1.1.0.Final.jar:1.1.0.Final]
    at org.jboss.as.server.parsing.StandaloneXml.parseServerProfile(StandaloneXml.java:894) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.server.parsing.StandaloneXml.readServerElement_1_1(StandaloneXml.java:330) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:127) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.as.server.parsing.StandaloneXml.readElement(StandaloneXml.java:100) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
    at org.jboss.staxmapper.XMLMapperImpl.processNested(XMLMapperImpl.java:110) [staxmapper-1.1.0.Final.jar:1.1.0.Final]
    at org.jboss.staxmapper.XMLMapperImpl.parseDocument(XMLMapperImpl.java:69) [staxmapper-1.1.0.Final.jar:1.1.0.Final]
    at org.jboss.as.controller.persistence.XmlConfigurationPersister.load(XmlConfigurationPersister.java:133) [jboss-as-controller-7.1.1.Final.jar:7.1.1.Final]
    ... 3 more

このエラーは DB ドライバーの読み込みの問題ですが、これを解決する方法、またはこれを設定する別の方法

4

1 に答える 1

1

最初の問題は、<driver/>タグが の有効なタグではないことです<custom-handler/>

2 番目の問題は 7.1.1 です。Final では、log4j アペンダーをカスタム ハンドラーとして定義することはできません。これは EAP 6.x で動作しますが (6.2 ではすべてのバグが解決されています)、log4j が DB 接続をどのように実装したかをよく知らなければ、起動に潜在的な問題が発生する可能性があります。たとえば、ドライバーがまだ CP にない可能性があるため、明示的なモジュールと依存関係を追加する必要がある場合があります。

java.util.logging.Handlerシンプルなものを作成するかorg.jboss.logmanager.ExtHandler、DB ロギングを処理するのが最善かもしれません。これは非常に簡単で、log4j に依存する必要はありません。async-handlerハンドラーをパフォーマンスのために追加するだけです。

于 2014-01-02T16:52:46.040 に答える