[jboss-cvs] JBossAS SVN: r91038 - in branches/dml-log-service-integration/server/src: etc/conf/all/xmdesc and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jul 9 23:15:23 EDT 2009
Author: david.lloyd at jboss.com
Date: 2009-07-09 23:15:22 -0400 (Thu, 09 Jul 2009)
New Revision: 91038
Added:
branches/dml-log-service-integration/server/src/etc/deploy/jboss-logging.xml
Removed:
branches/dml-log-service-integration/server/src/etc/conf/all/jboss-logging.xml
branches/dml-log-service-integration/server/src/etc/conf/all/xmdesc/Log4jService-xmbean.xml
branches/dml-log-service-integration/server/src/main/org/jboss/logging/Log4jService.java
branches/dml-log-service-integration/server/src/main/org/jboss/logging/Log4jServiceMBean.java
Log:
Delete Log4j stuff; move jboss-logging.xml to deploy/ area
Deleted: branches/dml-log-service-integration/server/src/etc/conf/all/jboss-logging.xml
===================================================================
--- branches/dml-log-service-integration/server/src/etc/conf/all/jboss-logging.xml 2009-07-10 03:14:39 UTC (rev 91037)
+++ branches/dml-log-service-integration/server/src/etc/conf/all/jboss-logging.xml 2009-07-10 03:15:22 UTC (rev 91038)
@@ -1,657 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- ===================================================================== -->
-<!-- -->
-<!-- Logging System Configuration -->
-<!-- -->
-<!-- ===================================================================== -->
-
-<logging xmlns="urn:jboss:logging:6.0" xmlns:b="urn:jboss:bean-deployer:2.0">
-
- <!-- ================================= -->
- <!-- Preserve messages in a local file -->
- <!-- ================================= -->
-
- <!-- A time/date based rolling handler -->
-
- <periodic-rotating-file-handler
- file-name="${jboss.server.log.dir}/server.log"
- name="FILE"
- autoflush="true"
- append="true"
- suffix=".yyyy-MM-dd"> <!-- To roll over at the top of each hour, use ".yyyy-MM-dd-HH" instead -->
-
- <error-manager>
- <only-once/>
- </error-manager>
-
- <formatter>
- <pattern-formatter pattern="%d %-5p [%c] (%t) %m%n"/>
- </formatter>
- </periodic-rotating-file-handler>
-
- <!-- A size based file rolling appender
-
- <size-rotating-file-handler
- file-name="${jboss.server.log.dir}/server.log"
- name="FILE"
- autoflush="true"
- append="true"
- rotate-size="500k"
- max-backup-index="5">
-
- <error-manager>
- <only-once/>
- </error-manager>
-
- <formatter>
- <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] %m%n"/>
- </formatter>
- </size-rotating-file-handler>
- -->
-
- <!-- ============================== -->
- <!-- Append messages to the console -->
- <!-- ============================== -->
-
- <console-handler name="CONSOLE" autoflush="true" target="System.out">
- <error-manager>
- <only-once/>
- </error-manager>
-
- <level name="INFO"/>
-
- <formatter>
- <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] %m%n"/>
- </formatter>
- </console-handler>
-
- <!-- ====================== -->
- <!-- More Appender examples -->
- <!-- ====================== -->
-
- <!-- Buffer events and log them asynchronously
-
- <async-handler name="ASYNC">
- <error-manager>
- <only-once/>
- </error-manager>
-
- <sub-handlers>
- <handler-ref name="FILE"/>
- <handler-ref name="CONSOLE"/>
- <handler-ref name="SMTP"/>
- </sub-handlers>
- </async-handler>
- -->
-
- <!-- EMail events to an administrator
-
- <log4j-appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
- <error-manager>
- <only-once/>
- </error-manager>
-
- <level name="ERROR"/>
-
- <properties>
- <property name="to">admin at myhost.domain.com</property>
- <property name="from">nobody at myhost.domain.com</property>
- <property name="subject">JBoss Sever Errors</property>
- <property name="sMTPHost">localhost</property>
- <property name="bufferSize">10</property>
- </properties>
-
- <formatter>
- <pattern-formatter pattern="%d %-5p [%c] (%t) %m%n"/>
- </formatter>
- </log4j-appender>
- -->
-
- <!-- Syslog events
-
- <log4j-appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender">
- <error-manager>
- <only-once/>
- </error-manager>
-
- <properties>
- <property name="facility">LOCAL7</property>
- <property name="facilityPrinting">true</property>
- <property name="syslogHost">localhost</property>
- </properties>
-
- <formatter>
- <pattern-formatter pattern="[%d,%c{1}] %m%n"/>
- </formatter>
- </log4j-appender>
- -->
-
- <!-- Log events to JMS (requires a topic to be created)
-
- <log4j-appender name="JMS" class="org.apache.log4j.net.JMSAppender">
- <error-manager>
- <only-once/>
- </error-manager>
-
- <level name="ERROR"/>
-
- <properties>
- <property name="topicConnectionFactoryBindingName">
- --><!-- Use injection so that an implicit dependency is formed - TODO: get the correct property name --><!--
- <b:inject bean="myTopicBiding" property="name"/>
- </property>
- <property name="topicBindingName">topic/MyErrorsTopic</property>
- </properties>
- </log4j-appender>
- -->
-
- <!-- Log events through SNMP
-
- <log4j-appender name="TRAP_LOG" class="org.apache.log4j.ext.SNMPTrapAppender">
- <error-manager>
- <only-once/>
- </error-manager>
-
- <level name="DEBUG"/>
-
- <properties>
- <property name="implementationClassName">org.apache.log4j.ext.JoeSNMPTrapSender</property>
- <property name="managementHost">127.0.0.1</property>
- <property name="managementHostTrapListenPort">162</property>
- <property name="enterpriseOID">1.3.6.1.4.1.24.0</property>
- <property name="localIPAddress">127.0.0.1</property>
- <property name="localTrapSendPort">161</property>
- <property name="genericTrapType">6</property>
- <property name="specificTrapType">12345678</property>
- <property name="communityString">public</property>
- <property name="forwardStackTraceWithTrap">true</property>
- <property name="applicationTrapOID">1.3.6.1.4.1.24.12.10.22.64</property>
- </properties>
- <formatter>
- <pattern-formatter pattern="%d,%p,[%t],[%c],%m%n"/>
- </formatter>
- </log4j-appender>
- -->
-
- <!-- Emit events as JMX notifications
-
- <log4j-appender name="JMX" class="org.jboss.monitor.services.JMXNotificationAppender">
- <error-manager>
- <only-once/>
- </error-manager>
-
- <level name="WARN"/>
-
- <properties>
- <property name="objectName">jboss.system:service=Logging,type=JMXNotificationAppender</property>
- </properties>
-
- <formatter>
- <pattern-formatter pattern="%d %-5p [%c] %m"/>
- </formatter>
- </log4j-appender>
- -->
-
- <!-- Security AUDIT Appender
-
- <periodic-rotating-file-handler
- name="AUDIT"
- autoflush="true"
- file-name="${jboss.server.log.dir}/audit.log"
- suffix=".yyyy-MM-dd"
- append="true">
-
- <error-manager>
- <only-once/>
- </error-manager>
-
- <formatter>
- <pattern-formatter pattern="%d %-5p [%c] (%t:%x) %m%n"/>
- </formatter>
- </periodic-rotating-file-handler>
- -->
-
- <!-- =============================================== -->
- <!-- Limit categories -->
- <!-- if enabling "trace" at root logger level, -->
- <!-- use limit category settings to disable trace -->
- <!-- for packages that you don't want to trace -->
- <!-- =============================================== -->
-
- <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
- <logger category="org.apache">
- <level name="INFO"/>
- </logger>
-
- <!-- Limit the jacorb category to WARN as its INFO is verbose -->
- <logger category="jacorb">
- <level name="WARN"/>
- </logger>
-
- <!-- Limit JSF to INFO as its FINE is verbose -->
- <logger category="javax.enterprise.resource.webcontainer.jsf">
- <level name="INFO"/>
- </logger>
-
- <!-- Limit the org.jgroups category to WARN as its INFO is verbose -->
- <logger category="org.jgroups">
- <level name="WARN"/>
- </logger>
-
- <!-- Limit the org.quartz category to INFO as its DEBUG is verbose -->
- <logger category="org.quartz">
- <level name="INFO"/>
- </logger>
-
- <!-- Limit the com.sun category to INFO as its FINE is verbose -->
- <logger category="com.sun">
- <level name="INFO"/>
- </logger>
-
- <!-- Limit the sun category to INFO as its FINE is verbose -->
- <logger category="sun">
- <level name="INFO"/>
- </logger>
-
- <!-- Limit the javax.xml.bind category to INFO as its FINE is verbose -->
- <logger category="javax.xml.bind">
- <level name="INFO"/>
- </logger>
-
- <!-- Limit JBoss categories
- <logger category="org.jboss">
- <level name="INFO"/>
- </logger>
- -->
-
- <!-- Or limit individual JBoss categories
- <logger category="org.jboss.web">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.tm">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.jdbc">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.on">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.services">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.bootstrap">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.kernel">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.beans">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.injection">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.annotation">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.system">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.mx">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.jmx">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.invocation">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.classloader">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.classloading">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.deployment">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.deployers">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.dependency">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.metadata">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.detailed">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.logging">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.logbridge">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.aop">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.joinpoint">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.util">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.ha">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.resource">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.varia">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.net">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.security">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.console">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.wsf">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.ejb">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.ejb3">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.jpa">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.virtual">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.xb">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.naming">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.wsf">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.ws">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.mail">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.monitor">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.remoting">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.profileservice">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.cache">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.proxy">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.jms">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.messaging">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.webbeans">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.managed">
- <level name="INFO" />
- </logger>
- -->
-
- <!-- Limit Arjuna transaction manager
- <logger category="com.arjuna">
- <level name="INFO" />
- </logger>
- -->
-
- <!-- Limit Hibernate
- <logger category="org.hibernate">
- <level name="INFO" />
- </logger>
- -->
-
- <!-- Limit Ajax4jsf
- <logger category="org.ajax4jsf">
- <level name="INFO" />
- </logger>
- -->
-
- <!-- Limit JNP
- <logger category="org.jnp">
- <level name="INFO" />
- </logger>
- -->
-
-
- <!-- Limit the JSR77 categories -->
- <logger category="org.jboss.management">
- <level name="INFO"/>
- </logger>
-
- <!-- Limit the verbose facelets compiler
- <logger category="facelets.compiler">
- <level name="WARN"/>
- </logger>
- -->
-
- <!-- Limit the verbose ajax4jsf cache initialization
- <logger category="org.ajax4jsf.cache">
- <level name="WARN"/>
- </logger>
- -->
- <!-- Limit the verbose embedded jopr categories
- <logger category="org.rhq">
- <level name="WARN"/>
- </logger>
- -->
- <!-- Limit the verbose seam categories
- <logger category="org.jboss.seam">
- <level name="WARN"/>
- </logger>
- -->
-
- <!-- Show the evolution of the DataSource pool in the logs [inUse/Available/Max]
- <logger category="org.jboss.resource.connectionmanager.JBossManagedConnectionPool">
- <level name="TRACE"/>
- </logger>
- -->
-
- <!-- Category specifically for Security Audit Provider
- <logger category="org.jboss.security.audit.providers.LogAuditProvider" additivity="false">
- <level name="TRACE"/>
- <appender-ref ref="AUDIT"/>
- </logger>
- -->
-
- <!-- Limit the org.jboss.serial (jboss-serialization) to INFO as its DEBUG is verbose -->
- <logger category="org.jboss.serial">
- <level name="INFO"/>
- </logger>
-
- <!-- Decrease the priority threshold for the org.jboss.varia category
- <logger category="org.jboss.varia">
- <level name="DEBUG"/>
- </logger>
- -->
-
- <!-- Enable JBossWS message tracing
- <logger category="org.jboss.ws.core.MessageTrace">
- <level name="TRACE"/>
- </logger>
- -->
-
- <!-- Enable System log message tracing
- <logger category="org.jboss.system">
- <level name="TRACE"/>
- </logger>
- <logger category="org.jboss.ejb.plugins">
- <level name="TRACE"/>
- </logger>
- -->
-
- <!--
- | 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
-
- <logger category="org.jboss.system.server.Server">
- <level name="INFO"/>
- <handlers>
- <handler-ref name="TRAP_LOG"/>
- </handlers>
- </logger>
-
- <logger category="org.jboss.ha.framework.interfaces.HAPartition.lifecycle">
- <level name="INFO"/>
- <handlers>
- <handler-ref name="TRAP_LOG"/>
- </handlers>
- </logger>
-
- <logger category="org.jboss.deployment.MainDeployer">
- <level name="ERROR"/>
- <handlers>
- <handler-ref name="TRAP_LOG"/>
- </handlers>
- </logger>
-
- <logger category="org.jboss.ejb.EJBDeployer">
- <level name="INFO"/>
- <handlers>
- <handler-ref name="TRAP_LOG"/>
- </handlers>
- </logger>
-
- <logger category="org.jboss.deployment.EARDeployer">
- <level name="INFO"/>
- <handlers>
- <handler-ref name="TRAP_LOG"/>
- </handlers>
- </logger>
- -->
-
- <!-- Clustering logging -->
- <!-- Uncomment the following to redirect the org.jgroups and
- org.jboss.ha categories to a cluster.log file.
-
- <size-rotating-file-handler
- file-name="${jboss.server.log.dir}/cluster.log"
- name="CLUSTER"
- append="false"
- rotate-size="500k"
- max-backup-index="5"
- autoflush="true">
-
- <error-manager>
- <only-once/>
- </error-manager>
-
- <formatter>
- <pattern-formatter pattern="%d %-5p [%c] %m%n"/>
- </formatter>
- </size-rotating-file-handler>
-
- <logger category="org.jgroups">
- <level name="DEBUG" />
- <handlers>
- <handler-ref name="CLUSTER"/>
- </handlers>
- </logger>
-
- <logger category="org.jboss.ha">
- <level name="DEBUG" />
- <handlers>
- <handler-ref name="CLUSTER"/>
- </handlers>
- </logger>
- -->
-
- <!-- ======================= -->
- <!-- Setup the Root category -->
- <!-- ======================= -->
-
- <root-logger>
- <!-- Set the root logger priority via a system property, with a default value. -->
- <level name="${jboss.server.log.threshold:DEBUG}"/>
- <handlers>
- <handler-ref name="CONSOLE"/>
- <handler-ref name="FILE"/>
- </handlers>
- </root-logger>
-
-</logging>
\ No newline at end of file
Deleted: branches/dml-log-service-integration/server/src/etc/conf/all/xmdesc/Log4jService-xmbean.xml
===================================================================
--- branches/dml-log-service-integration/server/src/etc/conf/all/xmdesc/Log4jService-xmbean.xml 2009-07-10 03:14:39 UTC (rev 91037)
+++ branches/dml-log-service-integration/server/src/etc/conf/all/xmdesc/Log4jService-xmbean.xml 2009-07-10 03:15:22 UTC (rev 91038)
@@ -1,117 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mbean PUBLIC "-//JBoss//DTD JBOSS XMBEAN 1.1//EN"
- "http://www.jboss.org/j2ee/dtd/jboss_xmbean_1_1.dtd" [
- <!ATTLIST interceptor
- proxyName CDATA #IMPLIED
->
-]>
-<!-- The Log4JService service XMBean
-$Id$
--->
-<mbean>
- <description>
- This MBean allows to get and set Log4j specific options.
-See also resource:log4j.xml
- </description>
- <class>org.jboss.logging.Log4jService</class>
- <constructor>
- <description>The default constructor</description>
- <name>Log4jService</name>
- </constructor>
-
- &defaultAttributes;
-
- <attribute access="read-write" getMethod="getConfigurationURL" setMethod="setConfigurationURL">
- <description>The URL of the log4j.xml config file.</description>
- <name>ConfigurationURL</name>
- <type>java.net.URL</type>
- </attribute>
- <attribute access="read-write" getMethod="getCatchSystemErr" setMethod="setCatchSystemErr">
- <description>Should data writen to standard error be caught and integrated into the log output.</description>
- <name>CatchSystemErr</name>
- <type>boolean</type>
- </attribute>
- <attribute access="read-write" getMethod="getCatchSystemOut" setMethod="setCatchSystemOut">
- <description>Should data writen to standard output be caught and integrated into the log output.</description>
- <name>CatchSystemOut</name>
- <type>boolean</type>
- </attribute>
- <attribute access="read-write" getMethod="getLog4jQuietMode" setMethod="setLog4jQuietMode">
- <description>Sets the log4j quite mode. For log4j 1.2.8 this must stay on true.</description>
- <name>Log4jQuietMode</name>
- <type>boolean</type>
- </attribute>
- <attribute access="read-write" getMethod="getRefreshPeriod" setMethod="setRefreshPeriod">
- <description>The time in seconds between checking for new config.</description>
- <name>RefreshPeriod</name>
- <type>int</type>
- </attribute>
- <attribute access="read-write" getMethod="getDefaultJBossServerLogThreshold" setMethod="setDefaultJBossServerLogThreshold">
- <description>The value to assign to system property jboss.server.log.threshold
- if it is not already set. This system property in turn controls
- the logging threshold for the server.log file.</description>
- <name>DefaultJBossServerLogThreshold</name>
- <type>java.lang.String</type>
- </attribute>
- <!-- Operations -->
- <operation>
- <description>Displays the log level of a given logger.</description>
- <name>getLoggerLevel</name>
- <parameter>
- <description>The name of the logger to display.</description>
- <name>logger</name>
- <type>java.lang.String</type>
- </parameter>
- <return-type>java.lang.String</return-type>
- </operation>
- <operation>
- <description>Sets the log level for a given logger.</description>
- <name>setLoggerLevel</name>
- <parameter>
- <description>The name of the logger to set.</description>
- <name>logger</name>
- <type>java.lang.String</type>
- </parameter>
- <parameter>
- <description>The log level to set.</description>
- <name>level</name>
- <type>java.lang.String</type>
- </parameter>
- <return-type>void</return-type>
- </operation>
- <operation>
- <description>Sets the levels of each logger specified by the given comma
- seperated list of logger names.</description>
- <name>setLoggerLevels</name>
- <parameter>
- <description>The list of loggers</description>
- <name>loggers</name>
- <type>java.lang.String</type>
- </parameter>
- <parameter>
- <description>The log level to set</description>
- <name>level</name>
- <type>java.lang.String</type>
- </parameter>
- <return-type>void</return-type>
- </operation>
- <operation>
- <description>Force the logging system to reconfigure.</description>
- <name>reconfigure</name>
- <return-type>void</return-type>
- </operation>
- <operation>
- <description>Force the logging system to reconfigure with the given URL.</description>
- <name>reconfigure</name>
- <parameter>
- <description>The url for the new configuration.</description>
- <name>url</name>
- <type>java.lang.String</type>
- </parameter>
- <return-type>void</return-type>
- </operation>
-
-
- &defaultOperations;
-
-</mbean>
\ No newline at end of file
Copied: branches/dml-log-service-integration/server/src/etc/deploy/jboss-logging.xml (from rev 91032, branches/dml-log-service-integration/server/src/etc/conf/all/jboss-logging.xml)
===================================================================
--- branches/dml-log-service-integration/server/src/etc/deploy/jboss-logging.xml (rev 0)
+++ branches/dml-log-service-integration/server/src/etc/deploy/jboss-logging.xml 2009-07-10 03:15:22 UTC (rev 91038)
@@ -0,0 +1,657 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Logging System Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<logging xmlns="urn:jboss:logging:6.0" xmlns:b="urn:jboss:bean-deployer:2.0">
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <!-- A time/date based rolling handler -->
+
+ <periodic-rotating-file-handler
+ file-name="${jboss.server.log.dir}/server.log"
+ name="FILE"
+ autoflush="true"
+ append="true"
+ suffix=".yyyy-MM-dd"> <!-- To roll over at the top of each hour, use ".yyyy-MM-dd-HH" instead -->
+
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <formatter>
+ <pattern-formatter pattern="%d %-5p [%c] (%t) %m%n"/>
+ </formatter>
+ </periodic-rotating-file-handler>
+
+ <!-- A size based file rolling appender
+
+ <size-rotating-file-handler
+ file-name="${jboss.server.log.dir}/server.log"
+ name="FILE"
+ autoflush="true"
+ append="true"
+ rotate-size="500k"
+ max-backup-index="5">
+
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <formatter>
+ <pattern-formatter pattern="%d %-5p [%c] (%t) %m%n"/>
+ </formatter>
+ </size-rotating-file-handler>
+ -->
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <console-handler name="CONSOLE" autoflush="true" target="System.out">
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <level name="INFO"/>
+
+ <formatter>
+ <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] %m%n"/>
+ </formatter>
+ </console-handler>
+
+ <!-- ====================== -->
+ <!-- More Appender examples -->
+ <!-- ====================== -->
+
+ <!-- Buffer events and log them asynchronously
+
+ <async-handler name="ASYNC">
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <sub-handlers>
+ <handler-ref name="FILE"/>
+ <handler-ref name="CONSOLE"/>
+ <handler-ref name="SMTP"/>
+ </sub-handlers>
+ </async-handler>
+ -->
+
+ <!-- EMail events to an administrator
+
+ <log4j-appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <level name="ERROR"/>
+
+ <properties>
+ <property name="to">admin at myhost.domain.com</property>
+ <property name="from">nobody at myhost.domain.com</property>
+ <property name="subject">JBoss Sever Errors</property>
+ <property name="sMTPHost">localhost</property>
+ <property name="bufferSize">10</property>
+ </properties>
+
+ <formatter>
+ <pattern-formatter pattern="%d %-5p [%c] (%t) %m%n"/>
+ </formatter>
+ </log4j-appender>
+ -->
+
+ <!-- Syslog events
+
+ <log4j-appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender">
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <properties>
+ <property name="facility">LOCAL7</property>
+ <property name="facilityPrinting">true</property>
+ <property name="syslogHost">localhost</property>
+ </properties>
+
+ <formatter>
+ <pattern-formatter pattern="[%d,%c{1}] %m%n"/>
+ </formatter>
+ </log4j-appender>
+ -->
+
+ <!-- Log events to JMS (requires a topic to be created)
+
+ <log4j-appender name="JMS" class="org.apache.log4j.net.JMSAppender">
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <level name="ERROR"/>
+
+ <properties>
+ <property name="topicConnectionFactoryBindingName">
+ --><!-- Use injection so that an implicit dependency is formed - TODO: get the correct property name --><!--
+ <b:inject bean="myTopicBiding" property="name"/>
+ </property>
+ <property name="topicBindingName">topic/MyErrorsTopic</property>
+ </properties>
+ </log4j-appender>
+ -->
+
+ <!-- Log events through SNMP
+
+ <log4j-appender name="TRAP_LOG" class="org.apache.log4j.ext.SNMPTrapAppender">
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <level name="DEBUG"/>
+
+ <properties>
+ <property name="implementationClassName">org.apache.log4j.ext.JoeSNMPTrapSender</property>
+ <property name="managementHost">127.0.0.1</property>
+ <property name="managementHostTrapListenPort">162</property>
+ <property name="enterpriseOID">1.3.6.1.4.1.24.0</property>
+ <property name="localIPAddress">127.0.0.1</property>
+ <property name="localTrapSendPort">161</property>
+ <property name="genericTrapType">6</property>
+ <property name="specificTrapType">12345678</property>
+ <property name="communityString">public</property>
+ <property name="forwardStackTraceWithTrap">true</property>
+ <property name="applicationTrapOID">1.3.6.1.4.1.24.12.10.22.64</property>
+ </properties>
+ <formatter>
+ <pattern-formatter pattern="%d,%p,[%t],[%c],%m%n"/>
+ </formatter>
+ </log4j-appender>
+ -->
+
+ <!-- Emit events as JMX notifications
+
+ <log4j-appender name="JMX" class="org.jboss.monitor.services.JMXNotificationAppender">
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <level name="WARN"/>
+
+ <properties>
+ <property name="objectName">jboss.system:service=Logging,type=JMXNotificationAppender</property>
+ </properties>
+
+ <formatter>
+ <pattern-formatter pattern="%d %-5p [%c] %m"/>
+ </formatter>
+ </log4j-appender>
+ -->
+
+ <!-- Security AUDIT Appender
+
+ <periodic-rotating-file-handler
+ name="AUDIT"
+ autoflush="true"
+ file-name="${jboss.server.log.dir}/audit.log"
+ suffix=".yyyy-MM-dd"
+ append="true">
+
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <formatter>
+ <pattern-formatter pattern="%d %-5p [%c] (%t:%x) %m%n"/>
+ </formatter>
+ </periodic-rotating-file-handler>
+ -->
+
+ <!-- =============================================== -->
+ <!-- Limit categories -->
+ <!-- if enabling "trace" at root logger level, -->
+ <!-- use limit category settings to disable trace -->
+ <!-- for packages that you don't want to trace -->
+ <!-- =============================================== -->
+
+ <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
+ <logger category="org.apache">
+ <level name="INFO"/>
+ </logger>
+
+ <!-- Limit the jacorb category to WARN as its INFO is verbose -->
+ <logger category="jacorb">
+ <level name="WARN"/>
+ </logger>
+
+ <!-- Limit JSF to INFO as its FINE is verbose -->
+ <logger category="javax.enterprise.resource.webcontainer.jsf">
+ <level name="INFO"/>
+ </logger>
+
+ <!-- Limit the org.jgroups category to WARN as its INFO is verbose -->
+ <logger category="org.jgroups">
+ <level name="WARN"/>
+ </logger>
+
+ <!-- Limit the org.quartz category to INFO as its DEBUG is verbose -->
+ <logger category="org.quartz">
+ <level name="INFO"/>
+ </logger>
+
+ <!-- Limit the com.sun category to INFO as its FINE is verbose -->
+ <logger category="com.sun">
+ <level name="INFO"/>
+ </logger>
+
+ <!-- Limit the sun category to INFO as its FINE is verbose -->
+ <logger category="sun">
+ <level name="INFO"/>
+ </logger>
+
+ <!-- Limit the javax.xml.bind category to INFO as its FINE is verbose -->
+ <logger category="javax.xml.bind">
+ <level name="INFO"/>
+ </logger>
+
+ <!-- Limit JBoss categories
+ <logger category="org.jboss">
+ <level name="INFO"/>
+ </logger>
+ -->
+
+ <!-- Or limit individual JBoss categories
+ <logger category="org.jboss.web">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.tm">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.jdbc">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.on">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.services">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.bootstrap">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.kernel">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.beans">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.injection">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.annotation">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.system">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.mx">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.jmx">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.invocation">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.classloader">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.classloading">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.deployment">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.deployers">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.dependency">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.metadata">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.detailed">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.logging">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.logbridge">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.aop">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.joinpoint">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.util">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.ha">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.resource">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.varia">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.net">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.security">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.console">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.wsf">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.ejb">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.ejb3">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.jpa">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.virtual">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.xb">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.naming">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.wsf">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.ws">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.mail">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.monitor">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.remoting">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.profileservice">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.cache">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.proxy">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.jms">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.messaging">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.webbeans">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.managed">
+ <level name="INFO" />
+ </logger>
+ -->
+
+ <!-- Limit Arjuna transaction manager
+ <logger category="com.arjuna">
+ <level name="INFO" />
+ </logger>
+ -->
+
+ <!-- Limit Hibernate
+ <logger category="org.hibernate">
+ <level name="INFO" />
+ </logger>
+ -->
+
+ <!-- Limit Ajax4jsf
+ <logger category="org.ajax4jsf">
+ <level name="INFO" />
+ </logger>
+ -->
+
+ <!-- Limit JNP
+ <logger category="org.jnp">
+ <level name="INFO" />
+ </logger>
+ -->
+
+
+ <!-- Limit the JSR77 categories -->
+ <logger category="org.jboss.management">
+ <level name="INFO"/>
+ </logger>
+
+ <!-- Limit the verbose facelets compiler
+ <logger category="facelets.compiler">
+ <level name="WARN"/>
+ </logger>
+ -->
+
+ <!-- Limit the verbose ajax4jsf cache initialization
+ <logger category="org.ajax4jsf.cache">
+ <level name="WARN"/>
+ </logger>
+ -->
+ <!-- Limit the verbose embedded jopr categories
+ <logger category="org.rhq">
+ <level name="WARN"/>
+ </logger>
+ -->
+ <!-- Limit the verbose seam categories
+ <logger category="org.jboss.seam">
+ <level name="WARN"/>
+ </logger>
+ -->
+
+ <!-- Show the evolution of the DataSource pool in the logs [inUse/Available/Max]
+ <logger category="org.jboss.resource.connectionmanager.JBossManagedConnectionPool">
+ <level name="TRACE"/>
+ </logger>
+ -->
+
+ <!-- Category specifically for Security Audit Provider
+ <logger category="org.jboss.security.audit.providers.LogAuditProvider" additivity="false">
+ <level name="TRACE"/>
+ <appender-ref ref="AUDIT"/>
+ </logger>
+ -->
+
+ <!-- Limit the org.jboss.serial (jboss-serialization) to INFO as its DEBUG is verbose -->
+ <logger category="org.jboss.serial">
+ <level name="INFO"/>
+ </logger>
+
+ <!-- Decrease the priority threshold for the org.jboss.varia category
+ <logger category="org.jboss.varia">
+ <level name="DEBUG"/>
+ </logger>
+ -->
+
+ <!-- Enable JBossWS message tracing
+ <logger category="org.jboss.ws.core.MessageTrace">
+ <level name="TRACE"/>
+ </logger>
+ -->
+
+ <!-- Enable System log message tracing
+ <logger category="org.jboss.system">
+ <level name="TRACE"/>
+ </logger>
+ <logger category="org.jboss.ejb.plugins">
+ <level name="TRACE"/>
+ </logger>
+ -->
+
+ <!--
+ | 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
+
+ <logger category="org.jboss.system.server.Server">
+ <level name="INFO"/>
+ <handlers>
+ <handler-ref name="TRAP_LOG"/>
+ </handlers>
+ </logger>
+
+ <logger category="org.jboss.ha.framework.interfaces.HAPartition.lifecycle">
+ <level name="INFO"/>
+ <handlers>
+ <handler-ref name="TRAP_LOG"/>
+ </handlers>
+ </logger>
+
+ <logger category="org.jboss.deployment.MainDeployer">
+ <level name="ERROR"/>
+ <handlers>
+ <handler-ref name="TRAP_LOG"/>
+ </handlers>
+ </logger>
+
+ <logger category="org.jboss.ejb.EJBDeployer">
+ <level name="INFO"/>
+ <handlers>
+ <handler-ref name="TRAP_LOG"/>
+ </handlers>
+ </logger>
+
+ <logger category="org.jboss.deployment.EARDeployer">
+ <level name="INFO"/>
+ <handlers>
+ <handler-ref name="TRAP_LOG"/>
+ </handlers>
+ </logger>
+ -->
+
+ <!-- Clustering logging -->
+ <!-- Uncomment the following to redirect the org.jgroups and
+ org.jboss.ha categories to a cluster.log file.
+
+ <size-rotating-file-handler
+ file-name="${jboss.server.log.dir}/cluster.log"
+ name="CLUSTER"
+ append="false"
+ rotate-size="500k"
+ max-backup-index="5"
+ autoflush="true">
+
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <formatter>
+ <pattern-formatter pattern="%d %-5p [%c] %m%n"/>
+ </formatter>
+ </size-rotating-file-handler>
+
+ <logger category="org.jgroups">
+ <level name="DEBUG" />
+ <handlers>
+ <handler-ref name="CLUSTER"/>
+ </handlers>
+ </logger>
+
+ <logger category="org.jboss.ha">
+ <level name="DEBUG" />
+ <handlers>
+ <handler-ref name="CLUSTER"/>
+ </handlers>
+ </logger>
+ -->
+
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root-logger>
+ <!-- Set the root logger priority via a system property, with a default value. -->
+ <level name="${jboss.server.log.threshold:DEBUG}"/>
+ <handlers>
+ <handler-ref name="CONSOLE"/>
+ <handler-ref name="FILE"/>
+ </handlers>
+ </root-logger>
+
+</logging>
\ No newline at end of file
Deleted: branches/dml-log-service-integration/server/src/main/org/jboss/logging/Log4jService.java
===================================================================
--- branches/dml-log-service-integration/server/src/main/org/jboss/logging/Log4jService.java 2009-07-10 03:14:39 UTC (rev 91037)
+++ branches/dml-log-service-integration/server/src/main/org/jboss/logging/Log4jService.java 2009-07-10 03:15:22 UTC (rev 91038)
@@ -1,719 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.logging;
-
-import java.io.IOException;
-import java.io.PrintStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.StringTokenizer;
-import java.util.Timer;
-import java.util.TimerTask;
-
-import javax.management.MBeanServer;
-import javax.management.MalformedObjectNameException;
-import javax.management.Notification;
-import javax.management.ObjectName;
-
-import org.apache.log4j.Level;
-import org.apache.log4j.PropertyConfigurator;
-import org.apache.log4j.helpers.LogLog;
-import org.apache.log4j.xml.DOMConfigurator;
-import org.jboss.logging.log4j.JDKLevel;
-import org.jboss.logging.util.LoggerStream;
-import org.jboss.logging.util.OnlyOnceErrorHandler;
-import org.jboss.system.ServiceMBeanSupport;
-import org.jboss.util.Strings;
-import org.jboss.util.ThrowableHandler;
-import org.jboss.util.ThrowableListener;
-import org.jboss.util.stream.Streams;
-
-/**
- * Initializes the Log4j logging framework. Supports XML and standard
- * configuration file formats. Defaults to using 'log4j.xml' read
- * from a system resource.
- *
- * <p>Sets up a {@link ThrowableListener} to adapt unhandled
- * throwables to a logger.
- *
- * <p>Installs {@link LoggerStream} adapters for <tt>System.out</tt> and
- * <tt>System.err</tt> to catch and redirect calls to Log4j.
- *
- * @jmx:mbean name="jboss.system:type=Log4jService,service=Logging"
- * extends="org.jboss.system.ServiceMBean"
- *
- * @version <tt>$Revision$</tt>
- * @author <a href="mailto:phox at galactica.it">Fulco Muriglio</a>
- * @author <a href="mailto:Scott_Stark at displayscape.com">Scott Stark</a>
- * @author <a href="mailto:davidjencks at earthlink.net">David Jencks</a>
- * @author <a href="mailto:jason at planet57.com">Jason Dillon</a>
- * @author <a href="mailto:dimitris at jboss.org">Dimitris Andreadis</a>
- */
-public class Log4jService
- extends ServiceMBeanSupport
- implements Log4jServiceMBean
-{
- /**
- * The default url for the configuration file. Reads the value
- * from the system property <tt>org.jboss.logging.Log4jService.configURL</tt>
- * or if that is not set defaults to <tt>resource:log4j.xml</tt>.
- */
- public static final String DEFAULT_URL =
- System.getProperty(Log4jService.class.getName() + ".configURL", "resource:log4j.xml");
-
- /**
- * Default flag to enable/disable cacthing System.out. Reads the value
- * from the system property <tt>org.jboss.logging.Log4jService.catchSystemOut</tt>
- * or if not set defaults to <tt>true</tt>.
- */
- public static final boolean CATCH_SYSTEM_OUT =
- getBoolean(Log4jService.class.getName() + ".catchSystemOut", true);
-
- /**
- * Default flag to enable/disable cacthing System.err. Reads the value
- * from the system property <tt>org.jboss.logging.Log4jService.catchSystemErr</tt>
- * or if not set defaults to <tt>true</tt>.
- */
- public static final boolean CATCH_SYSTEM_ERR =
- getBoolean(Log4jService.class.getName() + ".catchSystemErr", true);
-
- /**
- * Default value for system property {@link #JBOSS_SERVER_LOG_THRESHOLD_PROPERTY}
- * if it is not otherwise configured.
- */
- public static final String DEFAULT_JBOSS_SERVER_LOG_THRESHOLD = "DEBUG";
-
- /** Helper to get boolean value from system property or use default if not set. */
- private static boolean getBoolean(String name, boolean defaultValue)
- {
- String value = System.getProperty(name, null);
- if (value == null)
- return defaultValue;
- return new Boolean(value).booleanValue();
- }
-
- /** The URL to the configuration file. */
- private URL configURL;
-
- /** The time in seconds between checking for new config. */
- private int refreshPeriod;
-
- private ThrowableListenerLoggingAdapter throwableAdapter;
-
- /** The previous value of System.out. */
- private PrintStream out;
-
- /** The previous value of System.err. */
- private PrintStream err;
-
- /**
- * Flag to enable/disable adapting <tt>System.out</tt> to the
- * <tt>STDOUT</tt> logger.
- */
- private boolean catchSystemOut = CATCH_SYSTEM_OUT;
-
- /**
- * Flag to enable/disable adapting <tt>System.out</tt> to the
- * <tt>STDERR</tt> logger.
- */
- private boolean catchSystemErr = CATCH_SYSTEM_ERR;
-
- /** The org.apache.log4j.helpers.LogLog.setQuietMode flag setting */
- private boolean log4jQuietMode = true;
-
- private String defaultJBossServerLogLevel = DEFAULT_JBOSS_SERVER_LOG_THRESHOLD;
-
- /** The URL watch timer (in daemon mode). */
- private Timer timer;
-
- /** The specialized timer task to watch our config file. */
- private URLWatchTimerTask timerTask;
-
- /**
- * A flag to enable start/stop to work as expected,
- * but still use create to init early.
- */
- private boolean initialized;
-
- /**
- * Uses defaults.
- *
- * @jmx:managed-constructor
- *
- * @throws MalformedURLException Could not create URL from default (propbably
- * a problem with overridden properties).
- */
- public Log4jService() throws MalformedURLException
- {
- this(DEFAULT_URL, 60);
- }
-
- /**
- * @jmx:managed-constructor
- *
- * @param url The configuration URL.
- */
- public Log4jService(final URL url)
- {
- this(url, 60);
- }
-
- /**
- * @jmx:managed-constructor
- *
- * @param url The configuration URL.
- */
- public Log4jService(final String url) throws MalformedURLException
- {
- this(Strings.toURL(url), 60);
- }
-
- /**
- * @jmx:managed-constructor
- *
- * @param url The configuration URL.
- * @param refreshPeriod The refreshPeriod in seconds to wait between each check.
- */
- public Log4jService(final String url, final int refreshPeriod)
- throws MalformedURLException
- {
- this(Strings.toURL(url), refreshPeriod);
- }
-
- /**
- * @jmx:managed-constructor
- *
- * @param url The configuration URL.
- * @param refreshPeriod The refreshPeriod in seconds to wait between each check.
- */
- public Log4jService(final URL url, final int refreshPeriod)
- {
- this.configURL = url;
- this.refreshPeriod = refreshPeriod;
- }
-
- /**
- * Set the catch <tt>System.out</tt> flag.
- *
- * @jmx:managed-attribute
- *
- * @param flag True to enable, false to disable.
- */
- public void setCatchSystemOut(final boolean flag)
- {
- this.catchSystemOut = flag;
- }
-
- /**
- * Get the catch <tt>System.out</tt> flag.
- *
- * @jmx:managed-attribute
- *
- * @return True if enabled, false if disabled.
- */
- public boolean getCatchSystemOut()
- {
- return catchSystemOut;
- }
-
- /**
- * Set the catch <tt>System.err</tt> flag.
- *
- * @jmx:managed-attribute
- *
- * @param flag True to enable, false to disable.
- */
- public void setCatchSystemErr(final boolean flag)
- {
- this.catchSystemErr = flag;
- }
-
- /**
- * Get the catch <tt>System.err</tt> flag.
- *
- * @jmx:managed-attribute
- *
- * @return True if enabled, false if disabled.
- */
- public boolean getCatchSystemErr()
- {
- return catchSystemErr;
- }
-
- /**
- * Get the org.apache.log4j.helpers.LogLog.setQuietMode flag
- *
- * @jmx:managed-attribute
- *
- * @return True if enabled, false if disabled.
- */
- public boolean getLog4jQuietMode()
- {
- return log4jQuietMode;
- }
- /**
- * Set the org.apache.log4j.helpers.LogLog.setQuietMode flag
- *
- * @jmx:managed-attribute
- *
- * @return True if enabled, false if disabled.
- */
- public void setLog4jQuietMode(boolean flag)
- {
- this.log4jQuietMode = flag;
- }
-
- /**
- * Get the refresh period.
- *
- * @jmx:managed-attribute
- */
- public int getRefreshPeriod()
- {
- return refreshPeriod;
- }
-
- /**
- * Set the refresh period.
- *
- * @jmx:managed-attribute
- */
- public void setRefreshPeriod(final int refreshPeriod)
- {
- this.refreshPeriod = refreshPeriod;
- }
-
- /**
- * Get the Log4j configuration URL.
- *
- * @jmx:managed-attribute
- */
- public URL getConfigurationURL()
- {
- return configURL;
- }
-
- /**
- * Set the Log4j configuration URL.
- *
- * @jmx:managed-attribute
- */
- public void setConfigurationURL(final URL url)
- {
- this.configURL = url;
- }
-
- /**
- * {@inheritDoc}
- *
- * @jmx:managed-attribute
- */
- public String getDefaultJBossServerLogThreshold()
- {
- return defaultJBossServerLogLevel;
- }
-
- /**
- * {@inheritDoc}
- *
- * @jmx:managed-attribute
- */
- public void setDefaultJBossServerLogThreshold(String level)
- {
- this.defaultJBossServerLogLevel = level;
- }
-
- /**
- * Sets the level for a logger of the give name.
- *
- * <p>Values are trimmed before used.
- *
- * @jmx:managed-operation
- *
- * @param name The name of the logger to change level
- * @param levelName The name of the level to change the logger to.
- */
- public void setLoggerLevel(final String name, final String levelName)
- {
- org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(name.trim());
- Level level = JDKLevel.toLevel(levelName.trim());
-
- logger.setLevel(level);
- log.info("Level set to " + level + " for " + name);
- }
-
- /**
- * Sets the levels of each logger specified by the given comma
- * seperated list of logger names.
- *
- * @jmx:managed-operation
- *
- * @see #setLoggerLevel
- *
- * @param list A comma seperated list of logger names.
- * @param levelName The name of the level to change the logger to.
- */
- public void setLoggerLevels(final String list, final String levelName)
- {
- StringTokenizer stok = new StringTokenizer(list, ",");
-
- while (stok.hasMoreTokens()) {
- String name = stok.nextToken();
- setLoggerLevel(name, levelName);
- }
- }
-
- /**
- * Gets the level of the logger of the give name.
- *
- * @jmx:managed-operation
- *
- * @param name The name of the logger to inspect.
- */
- public String getLoggerLevel(final String name)
- {
- org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(name);
- Level level = logger.getLevel();
-
- if (level != null)
- return level.toString();
-
- return null;
- }
-
- /**
- * Force the logging system to reconfigure.
- *
- * @jmx:managed-operation
- */
- public void reconfigure() throws IOException
- {
- if (timerTask == null)
- throw new IllegalStateException("Service stopped or not started");
-
- timerTask.reconfigure();
- }
-
- /**
- * Hack to reconfigure and change the URL. This is needed until we
- * have a JMX HTML Adapter that can use PropertyEditor to coerce.
- *
- * @jmx:managed-operation
- *
- * @param url The new configuration url
- */
- public void reconfigure(final String url) throws IOException, MalformedURLException
- {
- setConfigurationURL(Strings.toURL(url));
- reconfigure();
- }
-
- private void installSystemAdapters()
- {
- org.apache.log4j.Logger logger;
-
- // Install catchers
- if (catchSystemOut)
- {
- logger = org.apache.log4j.Logger.getLogger("STDOUT");
- out = System.out;
- System.setOut(new LoggerStream(logger, Level.INFO, out));
- log.debug("Installed System.out adapter");
- }
-
- if (catchSystemErr)
- {
- logger = org.apache.log4j.Logger.getLogger("STDERR");
- err = System.err;
- OnlyOnceErrorHandler.setOutput(err);
- System.setErr(new LoggerStream(logger, Level.ERROR, err));
- log.debug("Installed System.err adapter");
- }
- }
-
- private void uninstallSystemAdapters()
- {
- // Remove System adapters
- if (out != null)
- {
- System.out.flush();
- System.setOut(out);
- log.debug("Removed System.out adapter");
- out = null;
- }
-
- if (err != null)
- {
- System.err.flush();
- System.setErr(err);
- log.debug("Removed System.err adapter");
- err = null;
- }
- }
-
-
- ///////////////////////////////////////////////////////////////////////////
- // Concrete Service Overrides //
- ///////////////////////////////////////////////////////////////////////////
-
- protected ObjectName getObjectName(MBeanServer server, ObjectName name)
- throws MalformedObjectNameException
- {
- return name == null ? OBJECT_NAME : name;
- }
-
- private void setup() throws Exception
- {
- if (initialized) return;
-
- establishDefaultLoggingLevelSystemProperty();
-
- timerTask = new URLWatchTimerTask();
- timerTask.run();
- timer = new Timer("Timer-" + getName(), true);
- timer.schedule(timerTask, 1000 * refreshPeriod, 1000 * refreshPeriod);
-
- // Make sure the root Logger has loaded
- org.apache.log4j.Logger.getRootLogger();
-
- // Install listener for unhandled throwables to turn them into log messages
- throwableAdapter = new ThrowableListenerLoggingAdapter();
- ThrowableHandler.addThrowableListener(throwableAdapter);
- log.debug("Added ThrowableListener: " + throwableAdapter);
-
- initialized = true;
- }
-
- private void establishDefaultLoggingLevelSystemProperty()
- {
- try
- {
- if (defaultJBossServerLogLevel != null
- && SysPropertyActions.getProperty(JBOSS_SERVER_LOG_THRESHOLD_PROPERTY, null) == null)
- {
- SysPropertyActions.setProperty(JBOSS_SERVER_LOG_THRESHOLD_PROPERTY,
- defaultJBossServerLogLevel);
- }
- }
- catch (SecurityException e)
- {
- log.warn("Cannot configure system property " + JBOSS_SERVER_LOG_THRESHOLD_PROPERTY +
- " -- " + e.getLocalizedMessage());
- }
-
- }
-
- protected void createService() throws Exception
- {
- setup();
- }
-
- protected void startService() throws Exception
- {
- setup();
- }
-
- protected void stopService() throws Exception
- {
- timer.cancel();
- timer = null;
- timerTask.cancel();
- timerTask = null;
-
- // Remove throwable adapter
- ThrowableHandler.removeThrowableListener(throwableAdapter);
- throwableAdapter = null;
-
- uninstallSystemAdapters();
-
- // allow start to re-initalize
- initialized = false;
- }
-
- protected void emitReconfigureNotification()
- {
- // emit a reconfigure notification with the configURL
- Notification n = new Notification(RECONFIGURE_NOTIFICATION_TYPE,
- this, getNextNotificationSequenceNumber(), "Log4j subsystem reconfigured");
- n.setUserData(configURL);
-
- super.sendNotification(n);
- }
-
- ///////////////////////////////////////////////////////////////////////////
- // ThrowableListener Adapter //
- ///////////////////////////////////////////////////////////////////////////
-
- /**
- * Adapts ThrowableHandler to the Loggger interface. Using nested
- * class instead of anoynmous class for better logger naming.
- */
- private static class ThrowableListenerLoggingAdapter
- implements ThrowableListener
- {
- private Logger log = Logger.getLogger(ThrowableListenerLoggingAdapter.class);
-
- public void onThrowable(int type, Throwable t)
- {
- switch (type)
- {
- default:
- // if type is not valid then make it any error
-
- case ThrowableHandler.Type.ERROR:
- log.error("Unhandled Throwable", t);
- break;
-
- case ThrowableHandler.Type.WARNING:
- log.warn("Unhandled Throwable", t);
- break;
-
- case ThrowableHandler.Type.UNKNOWN:
- // these could be red-herrings, so log them as trace
- log.trace("Ynhandled Throwable; status is unknown", t);
- break;
- }
- }
- }
-
-
- ///////////////////////////////////////////////////////////////////////////
- // URL Watching Timer Task //
- ///////////////////////////////////////////////////////////////////////////
-
- /**
- * A timer task to check when a URL changes (based on
- * last modified time) and reconfigure Log4j.
- */
- private class URLWatchTimerTask
- extends TimerTask
- {
- private Logger log = Logger.getLogger(URLWatchTimerTask.class);
-
- private long lastConfigured = -1;
-
- public void run()
- {
- log.trace("Checking if configuration changed");
-
- boolean trace = log.isTraceEnabled();
-
- try
- {
- URLConnection conn = configURL.openConnection();
- if (trace)
- log.trace("connection: " + conn);
-
- long lastModified = conn.getLastModified();
- if (trace)
- {
- log.trace("last configured: " + lastConfigured);
- log.trace("last modified: " + lastModified);
- }
-
- if (lastConfigured < lastModified)
- {
- reconfigure(conn);
- }
- }
- catch (Exception e)
- {
- log.warn("Failed to check URL: " + configURL, e);
- }
- }
-
- public void reconfigure() throws IOException
- {
- URLConnection conn = configURL.openConnection();
- reconfigure(conn);
- }
-
- private void reconfigure(final URLConnection conn)
- {
- log.info("Configuring from URL: " + configURL);
-
- boolean xml = false;
- boolean trace = log.isTraceEnabled();
-
- // check if the url is xml
- String contentType = conn.getContentType();
- if (trace)
- log.trace("content type: " + contentType);
-
- if (contentType == null)
- {
- String filename = configURL.getFile().toLowerCase();
- if (trace) log.trace("filename: " + filename);
-
- xml = filename.endsWith(".xml");
- }
- else
- {
- xml = contentType.equalsIgnoreCase("text/xml");
- xml |= contentType.equalsIgnoreCase("application/xml");
- }
- if (trace)
- log.trace("reconfiguring; xml=" + xml);
-
- // Dump our config if trace is enabled
- if (trace)
- {
- try
- {
- java.io.InputStream is = conn.getInputStream();
- Streams.copy(is, System.out);
- }
- catch (Exception e)
- {
- log.error("Failed to dump config", e);
- }
- }
-
- // need to uninstall adapters to avoid problems
- uninstallSystemAdapters();
-
- if (xml)
- {
- DOMConfigurator.configure(configURL);
- }
- else
- {
- PropertyConfigurator.configure(configURL);
- }
-
- /* Set the LogLog.QuietMode. As of log4j1.2.8 this needs to be set to
- avoid deadlock on exception at the appender level. See bug#696819.
- */
- LogLog.setQuietMode(log4jQuietMode);
-
- // but make sure they get reinstalled again
- installSystemAdapters();
-
- // and then remember when we were last changed
- lastConfigured = System.currentTimeMillis();
-
- // notify other mbeans that might be interested
- emitReconfigureNotification();
- }
- }
-}
Deleted: branches/dml-log-service-integration/server/src/main/org/jboss/logging/Log4jServiceMBean.java
===================================================================
--- branches/dml-log-service-integration/server/src/main/org/jboss/logging/Log4jServiceMBean.java 2009-07-10 03:14:39 UTC (rev 91037)
+++ branches/dml-log-service-integration/server/src/main/org/jboss/logging/Log4jServiceMBean.java 2009-07-10 03:15:22 UTC (rev 91038)
@@ -1,134 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2008, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jboss.logging;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import javax.management.ObjectName;
-
-import org.jboss.mx.util.ObjectNameFactory;
-import org.jboss.system.ServiceMBean;
-
-/**
- * MBean interface.
- */
-public interface Log4jServiceMBean extends ServiceMBean
-{
- /** The default object name */
- ObjectName OBJECT_NAME = ObjectNameFactory.create("jboss.system:type=Log4jService,service=Logging");
-
- /** Notification type used to indicate a log4j reconfiguration */
- String RECONFIGURE_NOTIFICATION_TYPE = "jboss.logging.log4j.reconfigure";
-
- /** Name of system property used to control the logging threshold for the server.log file */
- String JBOSS_SERVER_LOG_THRESHOLD_PROPERTY = "jboss.server.log.threshold";
-
- // Attributes ----------------------------------------------------
-
- /**
- * The catch <tt>System.out</tt> flag.
- * @param flag True to enable, false to disable.
- */
- void setCatchSystemOut(boolean flag);
- boolean getCatchSystemOut();
-
- /**
- * The catch <tt>System.err</tt> flag.
- * @param flag True to enable, false to disable.
- */
- void setCatchSystemErr(boolean flag);
- boolean getCatchSystemErr();
-
- /**
- * The org.apache.log4j.helpers.LogLog.setQuietMode flag
- * @return True if enabled, false if disabled.
- */
- void setLog4jQuietMode(boolean flag);
- boolean getLog4jQuietMode();
-
- /**
- * The refresh period.
- */
- void setRefreshPeriod(int refreshPeriod);
- int getRefreshPeriod();
-
- /**
- * The Log4j configuration URL.
- */
- void setConfigurationURL(URL url);
- URL getConfigurationURL();
-
- /**
- * The value to assign to system property {@link #JBOSS_SERVER_LOG_THRESHOLD_PROPERTY}
- * if it is not already set. This system property in turn controls
- * the logging threshold for the server.log file.
- * <p>
- * If the system property is already set when this service is created,
- * this value is ignored.
- * </p>
- */
- void setDefaultJBossServerLogThreshold(String level);
- String getDefaultJBossServerLogThreshold();
-
- // Operations ----------------------------------------------------
-
- /**
- * Sets the level for a logger of the give name.
- * <p>Values are trimmed before used.
- *
- * @param name The name of the logger to change level
- * @param levelName The name of the level to change the logger to.
- */
- void setLoggerLevel(String name, String levelName);
-
- /**
- * Sets the levels of each logger specified by the given comma seperated list of logger names.
- * @see #setLoggerLevel
- *
- * @param list A comma seperated list of logger names.
- * @param levelName The name of the level to change the logger to.
- */
- void setLoggerLevels(String list, String levelName);
-
- /**
- * Gets the level of the logger of the give name.
- *
- * @param name The name of the logger to inspect.
- */
- String getLoggerLevel(String name);
-
- /**
- * Force the logging system to reconfigure.
- */
- void reconfigure() throws IOException;
-
- /**
- * Hack to reconfigure and change the URL. This is needed until
- * we have a JMX HTML Adapter that can use PropertyEditor to coerce.
- *
- * @param url The new configuration url
- */
- void reconfigure(String url) throws IOException, MalformedURLException;
-
-}
More information about the jboss-cvs-commits
mailing list