简体   繁体   English

为Java启用详细日志记录(rt.jar)

[英]Enable Verbose Logging for Java (rt.jar)

I am new to stack overflow, please pardon if I make any mistake on my first post. 我是堆栈溢出的新手,如果我在第一篇文章中犯了任何错误,请原谅。

I am trying to enable VERBOSE logging for all classes under java package: sun.rmi.* the container being used is JBOSS-4.2.2 and there is a jboss-log4.xml in our application. 我正在尝试为java包下的所有类启用VERBOSE日志:sun.rmi。*使用的容器是JBOSS-4.2.2,并且在我们的应用程序中有一个jboss-log4.xml。

I have used the following JAVA_OPTS during start-up hoping to see the verbose logging within TCPChannel.java which is part of rt.jar( http://www.docjar.com/html/api/sun/rmi/transport/tcp/TCPChannel.java.html ) but it did not work. 我在启动过程中使用了以下JAVA_OPTS,希望能看到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"

Below is jboss-log4j.xml. 以下是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>

How do I enable logging using system property in jboss-log4j.xml if I believe the log4j.xml is overriding my java_opts I am using this link as reference: https://docs.oracle.com/javase/6/docs/technotes/guides/rmi/logging.html 如果我认为log4j.xml覆盖了我的java_opts,如何使用jboss-log4j.xml中的系统属性启用日志记录我正在使用以下链接作为参考: https ://docs.oracle.com/javase/6/docs/technotes /guides/rmi/logging.html

I want to try the category "client-side" "server-side" described in the above link, but I am clear on the syntax, if any example syntax can be provided, it would be helpful. 我想尝试上面链接中描述的类别“客户端”,“服务器端”,但是我在语法上很清楚,如果可以提供任何示例语法,那将很有帮助。

Any help in getting Verbose logging turned on is much appreciated. 非常感谢您对启用详细日志记录的任何帮助。

Since sun.rmi.* are Java SE classes, it is highly unlikely that they will use log4j logging. 由于sun.rmi.*是Java SE类,因此它们极不可能使用log4j日志记录。 Therefore, trying to configure logging for those classes via the log4j configs is (IMO) doomed to fail. 因此,尝试通过log4j configs配置这些类的日志记录(IMO)注定失败。

Instead, you should read about how to enable RMI logging here using the standard java.util.logging framework , and configuring the logging via a java.util.logging properties file; 相反,您应该在此处阅读如何使用标准java.util.logging框架启用RMI日志记录,以及如何通过java.util.logging属性文件配置日志记录。 see here . 这里

I think that log4j and java.util.logging can co-exist, provided that you don't try to log into the same log files. 我认为log4j和java.util.logging可以共存,只要您不尝试登录相同的日志文件即可。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM