2012-06-18 76 views
2

我試圖啓動我的jBoss服務器(v4.2)來運行並顯示我所有的log.debug消息。我需要通過編輯jboss配置來實現這一點。 不是以編程方式通過應用程序。Log4j和Jboss。如何獲得我的log.Debug(「Debug」)消息以顯示?

我的jboss-log4.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 

<!-- ===================================================================== --> 
<!--                  --> 
<!-- Log4j Configuration             --> 
<!--                  --> 
<!-- ===================================================================== --> 

<!-- $Id: jboss-log4j.xml 62403 2007-04-18 15:26:43Z [email protected] $ --> 

<!-- 
    | For more configuration infromation and examples see the Jakarta Log4j 
    | owebsite: http://jakarta.apache.org/log4j 
--> 

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> 

    <!-- ================================= --> 
    <!-- Preserve messages in a local file --> 
    <!-- ================================= --> 

    <!-- 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}/server.log"/> 
     <param name="Append" value="false"/> 

     <!-- Rollover at midnight each day --> 
     <param name="DatePattern" value="'.'yyyy-MM-dd"/> 

     <!-- Rollover at the top of each hour 
     <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/> 
     --> 

     <layout class="org.apache.log4j.PatternLayout"> 
     <!-- The default pattern: Date Priority [Category] Message\n --> 
     <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/> 

     <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n 
     <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/> 
      --> 
     </layout> 
    </appender> 

    <!-- A size based file rolling appender 
    <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender"> 
    <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/> 
    <param name="File" value="${jboss.server.log.dir}/server.log"/> 
    <param name="Append" value="false"/> 
    <param name="MaxFileSize" value="500KB"/> 
    <param name="MaxBackupIndex" value="1"/> 

    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/> 
    </layout>  
    </appender> 
    --> 

    <!-- ============================== --> 
    <!-- Append messages to the console --> 
    <!-- ============================== --> 

    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> 
     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/> 
     <param name="Target" value="System.out"/> 
     <param name="Threshold" value="DEBUG"/> 

     <layout class="org.apache.log4j.PatternLayout"> 
     <!-- The default pattern: Date Priority [Category] Message\n --> 
     <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/> 
     </layout> 
    </appender> 

    <!-- ====================== --> 
    <!-- More Appender examples --> 
    <!-- ====================== --> 

    <!-- Buffer events and log them asynchronously 
    <appender name="ASYNC" class="org.apache.log4j.AsyncAppender"> 
    <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/> 
    <appender-ref ref="FILE"/> 
    <appender-ref ref="CONSOLE"/> 
    <appender-ref ref="SMTP"/> 
    </appender> 
    --> 

    <!-- EMail events to an administrator 
    <appender name="SMTP" class="org.apache.log4j.net.SMTPAppender"> 
    <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/> 
    <param name="Threshold" value="ERROR"/> 
    <param name="To" value="[email protected]"/> 
    <param name="From" value="[email protected]"/> 
    <param name="Subject" value="JBoss Sever Errors"/> 
    <param name="SMTPHost" value="localhost"/> 
    <param name="BufferSize" value="10"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/> 
    </layout> 
    </appender> 
    --> 

    <!-- Syslog events 
    <appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender"> 
    <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/> 
    <param name="Facility" value="LOCAL7"/> 
    <param name="FacilityPrinting" value="true"/> 
    <param name="SyslogHost" value="localhost"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="[%d{ABSOLUTE},%c{1}] %m%n"/> 
    </layout> 
    </appender> 
    --> 

    <!-- Log events to JMS (requires a topic to be created) 
    <appender name="JMS" class="org.apache.log4j.net.JMSAppender"> 
    <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/> 
    <param name="Threshold" value="ERROR"/> 
    <param name="TopicConnectionFactoryBindingName" value="java:/ConnectionFactory"/> 
    <param name="TopicBindingName" value="topic/MyErrorsTopic"/> 
    </appender> 
    --> 

    <!-- Log events through SNMP 
    <appender name="TRAP_LOG" class="org.apache.log4j.ext.SNMPTrapAppender"> 
    <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/> 
    <param name="ImplementationClassName" value="org.apache.log4j.ext.JoeSNMPTrapSender"/> 
    <param name="ManagementHost" value="127.0.0.1"/> 
    <param name="ManagementHostTrapListenPort" value="162"/> 
    <param name="EnterpriseOID" value="1.3.6.1.4.1.24.0"/> 
    <param name="LocalIPAddress" value="127.0.0.1"/> 
    <param name="LocalTrapSendPort" value="161"/> 
    <param name="GenericTrapType" value="6"/> 
    <param name="SpecificTrapType" value="12345678"/> 
    <param name="CommunityString" value="public"/> 
    <param name="ForwardStackTraceWithTrap" value="true"/> 
    <param name="Threshold" value="DEBUG"/> 
    <param name="ApplicationTrapOID" value="1.3.6.1.4.1.24.12.10.22.64"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d,%p,[%t],[%c],%m%n"/> 
    </layout> 
    </appender> 
    --> 

    <!-- Emit events as JMX notifications 
    <appender name="JMX" class="org.jboss.monitor.services.JMXNotificationAppender"> 
     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/> 

     <param name="Threshold" value="WARN"/> 
     <param name="ObjectName" value="jboss.system:service=Logging,type=JMXNotificationAppender"/> 

     <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d %-5p [%c] %m"/> 
     </layout> 
    </appender> 
    --> 

    <!-- ================ --> 
    <!-- Limit categories --> 
    <!-- ================ --> 

    <!-- Limit the org.apache category to INFO as its DEBUG is verbose --> 
    <category name="org.apache"> 
     <priority value="DEBUG"/> 
    </category> 

    <!-- Limit the org.jboss.serial (jboss-serialization) to INFO as its DEBUG is verbose --> 
    <category name="org.jboss.serial"> 
     <priority value="DEBUG"/> 
    </category> 

    <!-- Limit the org.jgroups category to WARN as its INFO is verbose --> 
    <category name="org.jgroups"> 
     <priority value="DEBUG"/> 
    </category> 

    <!-- Limit the jacorb category to WARN as its INFO is verbose --> 
    <category name="jacorb"> 
     <priority value="DEBUG"/> 
    </category> 

    <!-- Limit JBoss categories --> 
    <category name="org.jboss"> 
     <priority value="DEBUG"/> 
    </category> 


    <!-- Limit the JSR77 categories --> 
    <category name="org.jboss.management"> 
     <priority value="DEBUG"/> 
    </category> 

    <!-- Enable JBossWS message tracing --> 
    <category name="jbossws.SOAPMessage"> 
    <priority value="TRACE"/> 
    </category> 


    <!-- Decrease the priority threshold for the org.jboss.varia category 
    <category name="org.jboss.varia"> 
    <priority value="DEBUG"/> 
    </category> 
    --> 

    <!-- Show the evolution of the DataSource pool in the logs [inUse/Available/Max] 
    <category name="org.jboss.resource.connectionmanager.JBossManagedConnectionPool"> 
    <priority value="TRACE"/> 
    </category> 
    --> 

    <!-- 
     | An example of enabling the custom TRACE level priority that is used 
     | by the JBoss internals to diagnose low level details. This example 
     | turns on TRACE level msgs for the org.jboss.ejb.plugins package and its 
     | subpackages. This will produce A LOT of logging output. 
     | 
     | Note: since jboss AS 4.2.x, the trace level is supported natively by 
     | log4j, so although the custom org.jboss.logging.XLevel priority will 
     | still work, there is no need to use it. The two examples that follow 
     | will both enable trace logging. 
    <category name="org.jboss.system"> 
    <priority value="TRACE" class="org.jboss.logging.XLevel"/> 
    </category> 
    <category name="org.jboss.ejb.plugins"> 
    <priority value="TRACE"/> 
    </category> 
    --> 

    <!-- 
     | Logs these events to SNMP: 
      - server starts/stops 
      - cluster evolution (node death/startup) 
      - When an EJB archive is deployed (and associated verified messages) 
      - When an EAR archive is deployed 

    <category name="org.jboss.system.server.Server"> 
    <priority value="INFO" /> 
    <appender-ref ref="TRAP_LOG"/> 
    </category> 

    <category name="org.jboss.ha.framework.interfaces.HAPartition.lifecycle"> 
    <priority value="INFO" /> 
    <appender-ref ref="TRAP_LOG"/> 
    </category> 

    <category name="org.jboss.deployment.MainDeployer"> 
    <priority value="ERROR" /> 
    <appender-ref ref="TRAP_LOG"/> 
    </category> 

    <category name="org.jboss.ejb.EJBDeployer"> 
    <priority value="INFO" /> 
    <appender-ref ref="TRAP_LOG"/> 
    </category> 

    <category name="org.jboss.deployment.EARDeployer"> 
    <priority value="INFO" /> 
    <appender-ref ref="TRAP_LOG"/> 
    </category> 

    --> 

    <!-- ======================= --> 
    <!-- Setup the Root category --> 
    <!-- ======================= --> 

    <root> 
     <appender-ref ref="CONSOLE"/> 
     <appender-ref ref="FILE"/> 
    </root> 

    <!-- Clustering logging --> 
    <!-- Uncomment the following to redirect the org.jgroups and 
     org.jboss.ha categories to a cluster.log file. 

    <appender name="CLUSTER" class="org.jboss.logging.appender.RollingFileAppender"> 
    <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/> 
    <param name="File" value="${jboss.server.log.dir}/cluster.log"/> 
    <param name="Append" value="false"/> 
    <param name="MaxFileSize" value="500KB"/> 
    <param name="MaxBackupIndex" value="1"/> 

    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/> 
    </layout> 
    </appender> 
    <category name="org.jgroups"> 
    <priority value="DEBUG" /> 
    <appender-ref ref="CLUSTER"/> 
    </category> 
    <category name="org.jboss.ha"> 
    <priority value="DEBUG" /> 
    <appender-ref ref="CLUSTER"/> 
    </category> 
    --> 

</log4j:configuration> 

頁我測試

private static final Logger log = Logger.getLogger(ServerLogsController.class 
    .getName()); 

@GET 
    @Path("/testDebug") 
    public String testDebug(@Context final ServletContext context) 
    { 
    log.error("This is an error which always shows!"); 
    log.debug("This is a debug message"); 

    return "Test Debug Page"; 
    } 
+1

你的''conf /'文件夾中有'log4j.xml'或'jboss-log4j.xml'文件嗎?您通常編輯log4j xml文件以修改調試級別。 – cklab

+0

@cklab這確實敲jboss到調試模式,但我仍然無法顯示我的log4j.debug消息。 – stackoverflow

+0

你可以發佈你的'log4j.xml'文件嗎? – cklab

回答

2

有兩種方法我能想到的,以獲得調試消息顯示在這裏:

1)您可以在xml文件中爲ServerLogsContr添加一個新條目oller顯示DEBUG消息。

<category name="package.for.ServerLogsController"> 
    <priority value="DEBUG" /> 
    <appender-ref ref="CONSOLE"/> 
    <appender-ref ref="FILE"/> 
</category> 

,你用正確的軟件包名稱替換package.for.ServerLogsController。請注意,您也可以將其設置爲package.for,並且該目錄下的所有文件都將記錄@DEBUG級別。此設置將覆蓋在第二項中提到根的行爲(即,如果根被設置爲DEBUGpackage.for.ServerLogsController設置爲ERROR,你不會看到package.for.ServerLogsControllerDEBUG消息。

2)設置調試根包

<root> 
    <priority value="DEBUG"/> 
    <appender-ref ref="CONSOLE"/> 
    <appender-ref ref="FILE"/> 
</root> 

這將使所有的包記錄在DEBUG水平,除非有包,專門重寫。

+0

我很感激幫助。我剛剛嘗試過,儘管我現在正在接收服務器調試消息,但我仍然無法在log.debug(「這是一條調試消息」)中顯示消息 – stackoverflow

+0

您選擇了哪個選項?你看到'這是一個總是顯示的錯誤!'?哪個包是'ServerLogsController'中的? – cklab

+0

我向控制器指定了正確的軟件包,但仍未顯示調試消息。消息「這是一個總是顯示的錯誤!」顯示,但這不是我想要得到的輸出。 – stackoverflow