0

将 Web 应用程序从另一个 J2EE 应用程序服务器移植到 JBoss 企业应用程序平台 6.1.0.GA (Redhat Enterprise Linux 6)。我正在运行一个开箱即用的独立服务器。

Servlet 和 Jsp 使用 System.out.println 和 System.err.println 进行日志记录。这些日志语句似乎都没有像我预期的那样出现在 server.log 或 console.log 中。

我意识到我应该使用日志系统,但是这些日志条目消失在哪里?

例如,如果我在 war 文件中显示的 jsp 中有以下内容,这些内容会去哪里?

<%
    System.out.println("TEST TO STDOUT");
    System.err.println("TEST TO STDERR");
%>

日志记录属性

loggers=jacorb,com.arjuna,org.apache.tomcat.util.modeler,org.jboss.as.config,jacorb.config,sun.rmi

logger.level=INFO
logger.handlers=CONSOLE,FILE

logger.jacorb.level=WARN
logger.jacorb.useParentHandlers=true

logger.com.arjuna.level=WARN
logger.com.arjuna.useParentHandlers=true

logger.org.apache.tomcat.util.modeler.level=WARN
logger.org.apache.tomcat.util.modeler.useParentHandlers=true

logger.org.jboss.as.config.level=DEBUG
logger.org.jboss.as.config.useParentHandlers=true

logger.jacorb.config.level=ERROR
logger.jacorb.config.useParentHandlers=true

logger.sun.rmi.level=WARN
logger.sun.rmi.useParentHandlers=true

handler.CONSOLE=org.jboss.logmanager.handlers.ConsoleHandler
handler.CONSOLE.level=INFO
handler.CONSOLE.formatter=CONSOLE
handler.CONSOLE.properties=autoFlush,target,enabled
handler.CONSOLE.autoFlush=true
handler.CONSOLE.target=SYSTEM_OUT
handler.CONSOLE.enabled=true

handler.FILE=org.jboss.logmanager.handlers.PeriodicRotatingFileHandler
handler.FILE.level=ALL
handler.FILE.formatter=FILE
handler.FILE.properties=autoFlush,append,fileName,suffix,enabled
handler.FILE.constructorProperties=fileName,append
handler.FILE.autoFlush=true
handler.FILE.append=true
handler.FILE.fileName=/home/jboss/jboss-eap-6.1/standalone/log/server.log
handler.FILE.suffix=.yyyy-MM-dd
handler.FILE.enabled=true

formatter.CONSOLE=org.jboss.logmanager.formatters.PatternFormatter
formatter.CONSOLE.properties=pattern
formatter.CONSOLE.pattern=%K{level}%d{HH\:mm\:ss,SSS} %-5p [%c] (%t) %s%E%n

formatter.FILE=org.jboss.logmanager.formatters.PatternFormatter
formatter.FILE.properties=pattern
formatter.FILE.constructorProperties=pattern
formatter.FILE.pattern=%d{HH\:mm\:ss,SSS} %-5p [%c] (%t) %s%E%n    

独立的.xml

    <subsystem xmlns="urn:jboss:domain:logging:1.2">
        <console-handler name="CONSOLE">
            <level name="INFO"/>
            <formatter>
                <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
            </formatter>
        </console-handler>
        <periodic-rotating-file-handler name="FILE" autoflush="true">
            <formatter>
                <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
            </formatter>
            <file relative-to="jboss.server.log.dir" path="server.log"/>
            <suffix value=".yyyy-MM-dd"/>
            <append value="true"/>
        </periodic-rotating-file-handler>
        <logger category="com.arjuna">
            <level name="WARN"/>
        </logger>
        <logger category="org.apache.tomcat.util.modeler">
            <level name="WARN"/>
        </logger>
        <logger category="org.jboss.as.config">
            <level name="DEBUG"/>
        </logger>
        <logger category="sun.rmi">
            <level name="WARN"/>
        </logger>
        <logger category="jacorb">
            <level name="WARN"/>
        </logger>
        <logger category="jacorb.config">
            <level name="ERROR"/>
        </logger>
        <root-logger>
            <level name="INFO"/>
            <handlers>
                <handler name="CONSOLE"/>
                <handler name="FILE"/>
            </handlers>
        </root-logger>
    </subsystem>
4

1 回答 1

0

我决定放弃 System.out 和 System.err 并开始使用 Log4J 作为日志系统。设置完成后,log4j 就可以正常工作了。无论如何,我是时候开始使用更好的日志记录系统了。奇怪的是在设置 log4j 之后,我在 server.log 中也看到了 System.err 和 System.out 数据。不知道它是如何修复的,但我现在很好。

于 2013-06-14T16:13:49.547 回答