Включить подробное ведение журнала для Java (rt.jar) - PullRequest
0 голосов
/ 13 ноября 2018

Я новичок в переполнении стека. Прошу прощения за ошибку в моем первом посте.

Я пытаюсь включить ведение журнала VERBOSE для всех классов в пакете java: sun.rmi. * Контейнериспользуется 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>

Как включить ведение журнала с помощью системного свойствав jboss-log4j.xml, если я считаю, что log4j.xml переопределяет мои java_opts. Я использую эту ссылку в качестве ссылки: https://docs.oracle.com/javase/6/docs/technotes/guides/rmi/logging.html

Я хочу попробовать категорию «на стороне клиента» «на стороне сервера»описанный в приведенной выше ссылке, но я ясно представляю синтаксис, если какой-либо пример синтаксиса может быть предоставлен, это будет полезно.

Любая помощь в включении подробного ведения журнала очень ценится.

1 Ответ

0 голосов
/ 13 ноября 2018

Поскольку sun.rmi.* являются классами Java SE, маловероятно, что они будут использовать log4j logging.Поэтому попытка настроить ведение журналов для этих классов через конфиги log4j обречена на провал (IMO).

Вместо этого вам следует прочитать о том, как включить ведение журнала RMI здесь с использованием стандарта java.util.logging framework и настройка регистрации через файл свойств java.util.logging;смотрите здесь .

Я думаю, что log4j и java.util.logging могут сосуществовать при условии, что вы не пытаетесь войти в одни и те же файлы журнала.

...