无法启用Orbeon开发的日志记录/调试

时间:2012-10-02 20:32:28

标签: orbeon

按照以下页面上的说明操作后:

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中使用远程调试,并且不向控制台接收输出。

我正在使用IntelliJ构建webapp,最新的https://github.com/orbeon/orbeon-forms/tree/4.0.0.m10-ce 目前提交51f0e8f1b396336c612c16655e39abe6b807214b

我正在使用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>

属性 - 那个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.cb088a8a347ad72a00012a9d8569b5e9c5dd638

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)

2 个答案:

答案 0 :(得分:1)

如果您将log4j声明为

,则应在Tomcat文件夹中提供logs文件夹
<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解压缩并创建一个文件夹。如果每次重新启动tomcat服务器时都没有删除.war,它将解压缩并重写在同一文件夹中。

答案 1 :(得分:0)

使用默认log4j.xml时,正在使用SingleFileAppender,并使用相对路径引用它写入的文件:

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

因此,磁盘上文件的位置取决于启动Tomcat的目录。从bin目录启动Tomcat并不罕见,在这种情况下,日志文件最终会出现在Tomcat的logs目录中。但是,如果您从其他位置启动Tomcat,或者希望日志文件最终位于不同的目录中,则可以编辑log4j.xml并在其中放置orbeon.log的绝对路径。 / p>