我是堆栈溢出的新手,如果我在第一篇文章中遇到任何错误,请原谅。
我正在尝试对java软件包sun.rmi。*下的所有类启用VERBOSE日志记录 使用的容器是JBOSS-4.2.2,我们的应用程序中有一个jboss-log4.xml。
我在启动过程中使用了以下JAVA_OPTS,希望能看到TCPChannel.java中的详细日志记录,该日志是rt.jar(http://www.docjar.com/html/api/sun/rmi/transport/tcp/TCPChannel.java.html)的一部分,但没有用。
JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.logCalls=true
-Dsun.rmi.server.logLevel=VERBOSE
-Dsun.rmi.client.logCalls=true
-Dsun.rmi.transport.tcp.logLevel=VERBOSE
-Dsun.rmi.transport.logLevel=VERBOSE"
下面是jboss-log4j.xml。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
debug="false">
<!-- A time/date based rolling appender -->
<appender name="FILE"
class="org.jboss.logging.appender.DailyRollingFileAppender">
<errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
<param name="File" value="${jboss.server.log.dir}/trace.log"/>
<param name="Append" value="true"/>
<param name="Threshold" value="TRACE#org.jboss.logging.XLevel"/>
<!-- Rollover at midnight each day -->
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ISO8601} %-5p [%X{jobName}
%X{token}] [%c] - %m%n"/>
</layout>
</appender>
<!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
<category name="org.apache">
<priority value="INFO"/>
</category>
<!-- Limit the jacorb category to WARN as its INFO is verbose -->
<category name="jacorb">
<priority value="WARN"/>
</category>
<!-- Limit the org.jgroups category to WARN as its INFO is verbose -->
<category name="org.jgroups">
<priority value="DEBUG"/>
</category>
<!-- Limit the org.quartz category to INFO as its DEBUG is verbose -->
<category name="org.quartz">
<priority value="INFO"/>
</category>
<!-- Limit the JSR77 categories -->
<category name="org.jboss.management">
<priority value="DEBUG"/>
</category>
<category name="org.jboss.serial">
<priority value="TRACE"/>
</category>
<category name="org.jboss.remoting">
<priority value="TRACE" class="org.jboss.logging.XLevel"></priority>
</category>
<category name="org.jboss">
<priority value="TRACE" class="org.jboss.logging.XLevel"></priority>
</category>
<category name="org.jnp">
<priority value="TRACE"/>
</category>
<root>
<appender-ref ref="FILE"/>
<!--appender-ref ref="SYSLOG"/-->
</root>
</log4j:configuration>
如果我相信log4j.xml覆盖了我的java_opts,如何使用jboss-log4j.xml中的系统属性启用日志记录 我使用此链接作为参考: https://docs.oracle.com/javase/6/docs/technotes/guides/rmi/logging.html
我想尝试上面链接中描述的类别“客户端”“服务器端”,但是我很清楚语法,如果可以提供任何示例语法,将很有帮助。
非常感谢您提供启用详细日志记录的任何帮助。
答案 0 :(得分:0)
由于sun.rmi.*
是Java SE类,因此它们极不可能使用log4j日志记录。因此,(IMO)尝试通过log4j configs配置这些类的日志记录注定会失败。
相反,您应该阅读有关如何使用标准here启用RMI日志记录java.util.logging
framework,以及如何通过java.util.logging
属性文件配置日志记录的信息;参见here。
如果您不尝试登录相同的日志文件,我认为log4j和java.util.logging可以共存。