1

次のページの指示に従った後:

http://wiki.orbeon.com/forms/doc/developer-guide/xforms-logging

http://wiki.orbeon.com/forms/doc/developer-guide/configuration-properties

上記のページの指示に従って log4j.xml および properties-local.xml ファイルを生成し、それらを$TOMCAT_HOME/webapps/orbeon/WEB-INF/resources/configディレクトリに挿入しました。

Tomcat を再起動し、ビルダーでいくつかのフォームを作成した後、ログ情報を見つけることができませんでした。システムに orbeon.log ファイルがなく、Tomcat ログ ファイルにも orbeon 情報がありません。さらに、Tomcat をデバッグ モードで実行して、IntelliJ でリモート デバッグを使用し、コンソールに出力を受け取りませんでした。

私はhttps://github.com/orbeon/orbeon-forms/tree/4.0.0.m10-ceの最新の IntelliJ を使用して自分で webappを構築しています

私は Ubuntu 12.04 を使用しており、Tomcat6 で orbeon を実行しています。

私は orbeon 開発に非常に慣れていないので、問題が単純なものであることを願っています。どんな助けでも大歓迎です。ありがとう。

アップデート:

結果のない絶対パスのロガーを設定しようとしました。これが私の現在の構成です(実際の絶対パスを除く)。

log4j.xml

<!-- This is the standard log appender to the console (System.out) -->
<appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out"/>
    <param name="Encoding" value="UTF-8"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{ISO8601} %-5p %c{1} %x - %m%n"/>
    </layout>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">
        <param name="LevelMin" value="debug"/>
    </filter>
</appender>

<!-- Logging to a single file, typically used in development when you don't want
     to be dealing with multiple files generated by the RollingFileAppender.
     See: http://logging.apache.org/log4j/docs/api/org/apache/log4j/FileAppender.html -->
<appender name="SingleFileAppender" class="org.apache.log4j.FileAppender">
    <param name="File" value="/Absolute_Path_To_$TOMCAT_HOME/logs/orbeon.log"/>
    <param name="Append" value="false" />
    <param name="Encoding" value="UTF-8"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{ISO8601} %-5p %c{1} %x - %m%n"/>
    </layout>
</appender>

<!-- Logging to a rolling files. Every time the file exceeds a certain size, a backup
     is created and the file used for logging is truncated.
     See: http://logging.apache.org/log4j/docs/api/org/apache/log4j/RollingFileAppender.html -->
<appender name="RollingFileAppender" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="../logs/orbeon.log"/>
    <param name="MaxFileSize" value="5MB"/>
    <param name="maxBackupIndex" value="200"/>
    <param name="Append" value="false" />
    <param name="Encoding" value="UTF-8"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{ISO8601} %-5p %c{1} %x - %m%n"/>
    </layout>
</appender>

<!-- XForms engine activity, see http://wiki.orbeon.com/forms/doc/developer-guide/xforms-logging -->

<category name="org.orbeon.oxf.xforms.processor.XFormsServer">
    <priority value="debug"/>
</category>

<!-- To enable logging for any of the sub-systems below, copy that section outside of the comment block -->

<category name="org.orbeon.oxf.properties.Properties">
    <priority value="debug"/>
</category>

<category name="org.orbeon.oxf.processor.pipeline.TeeProcessor">
    <priority value="debug"/>
</category>

<category name="org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor">
    <priority value="debug"/>
</category>

<category name="org.orbeon.oxf.processor.generator.URLGenerator">
    <priority value="debug"/>
</category>

<category name="org.orbeon.oxf.processor.xmldb.XMLDBProcessor">
    <priority value="debug"/>
</category>

<category name="org.orbeon.oxf.processor.sql.SQLProcessor">
    <priority value="debug"/>
</category>

<category name="org.orbeon.oxf.processor.PageFlowControllerProcessor">
    <priority value="debug"/>
</category>

<category name="org.orbeon.oxf.processor.generator.RequestGenerator">
    <priority value="debug"/>
</category>

<category name="org.orbeon.oxf.webapp.OPSSessionListener">
    <priority value="info"/>
</category>

<category name="org.orbeon.oxf.webapp.OPSServletContextListener">
    <priority value="info"/>
</category>
<!---->

<!-- Prevent extra display of eXist paging activity -->
<category name="org.exist.storage.btree.Paged">
    <priority value="warn"/>
</category>

<category name="org.exist.storage.DBBroker">
    <priority value="warn"/>
</category>

<category name="org.exist.storage.BrokerPool">
    <priority value="warn"/>
</category>

<!-- You decide here which one of the loggers listed above you want to use. -->
<root>
    <priority value="info"/>
    <!--<appender-ref ref="ConsoleAppender"/>-->
    <!--<appender-ref ref="ChainsawAppender"/>-->
    <appender-ref ref="SingleFileAppender"/>
    <!--<appender-ref ref="RollingFileAppender"/>-->
</root>

properties-local.xml

<properties xmlns:xs="http://www.w3.org/2001/XMLSchema"
            xmlns:oxf="http://www.orbeon.com/oxf/processors">
    <property as="xs:NMTOKENS" name="oxf.xforms.logging.debug" 
        value="document model submission control event action analysis server server-body html submission-details submission-body"/>
</properties>

Update2

いくつかの提案に従って、書き込み権限が問題ではないことを確認しました。ConsoleAppender も使用してみましたが、まだ出力がありませんでしたが、数分後に webapp もクラッシュし、Tomcat ログ ファイルでこの例外を見つけました。

警告: セッション 29AE194AA69E0D51C111F5035C219E7B のセッション属性 orbeon.resources.dynamic.cb088a8a347ad72a00012a9d8569b5e9c5dd6381 をシリアル化できません

java.io.NotSerializableException: scala.collection.JavaConversions$MapWrapper
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)
    at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
    at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493)
    at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
    at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
    at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
    at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1585)
    at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:1015)
    at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:528)
    at org.apache.catalina.session.StandardManager.unload(StandardManager.java:469)
    at org.apache.catalina.session.StandardManager.stop(StandardManager.java:678)
    at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4882)
    at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:936)
    at org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:1359)
    at org.apache.catalina.startup.HostConfig.stop(HostConfig.java:1330)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:326)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
    at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1098)
    at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1110)
    at org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:468)
    at org.apache.catalina.core.StandardService.stop(StandardService.java:604)
    at org.apache.catalina.core.StandardServer.stop(StandardServer.java:788)
    at org.apache.catalina.startup.Catalina.stop(Catalina.java:662)
    at org.apache.catalina.startup.Catalina$CatalinaShutdownHook.run(Catalina.java:706)
4

2 に答える 2

1

log4j を次のように宣言すると、Tomcat フォルダー内でログ フォルダーを使用できるようになります。

<appender name="SingleFileAppender" class="org.apache.log4j.FileAppender">
    <param name="File" value="../logs/orbeon.log"/>
    <param name="Append" value="false" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{ISO8601} %-5p %c{1} %x - %m%n"/>
    </layout>
</appender>

<!-- You decide here which one of the loggers listed above you want to use. -->
<root>
    <priority value="debug"/>
    <!--<appender-ref ref="ConsoleAppender"/>-->
    <!--<appender-ref ref="ChainsawAppender"/>-->
    <appender-ref ref="SingleFileAppender"/>
    <!--<appender-ref ref="RollingFileAppender"/>-->
</root>

Orbeon war ファイルを webapps フォルダーに配置しただけの場合は、サーバーの起動後に .war ファイルを削除することをお勧めします。サーバーの起動後、Tomcat は war を解凍し、フォルダーを作成します。tomcat サーバーを再起動するたびに .war を削除しないと、解凍されて同じフォルダーに再度上書きされます。

于 2012-10-03T05:33:25.597 に答える
0

デフォルトlog4j.xmlでは、SingleFileAppenderが使用されており、書き込み先のファイルは相対パスを使用して参照されます。

<param name="File" value="../logs/orbeon.log"/>

したがって、ディスク上のファイルの場所は、Tomcatを起動するディレクトリによって異なります。Tomcatをそのディレクトリから起動することは珍しくありません。そのbin場合、ログファイルはTomcatのlogsディレクトリに保存されます。ただし、Tomcatを別の場所から起動している場合、またはログファイルを別のディレクトリに配置したい場合は、を編集してlog4j.xml、に絶対パスを配置できますorbeon.log

于 2012-10-03T01:14:25.967 に答える