<script type="text/javascript">
</script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
Apache有很多有意思的开源的便利工具,像读取xml配置的Digist和一些common包。而这个common logging也是一个比较有名的log包。其实它只是简单封装了一些现有的log框架。这里只是简单介绍一下如何快速使用它,尤其是使用log4j和jdk1.4以上自带的log。
首先可以参看它的官方 User Guide,里面有很多基本的重要的信息,尤其是如何判断采用哪个log框架。具体的:
#
#org.apache.commons.logging.LogFactory=
# org.apache.commons.logging.impl.LogFactoryImpl
# SimpleLog
#org.apache.commons.logging.Log = org.apache.commons.logging.impl.SimpleLog
# JDK 1.4 logger
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
# Avalon Toolkit
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.LogKitLogger
# Log4j
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
内容很容易理解了,就是定义commong logging用哪个log封装类,而这个封装类就会调用相应的log框架进行日志输出。这里采用jdk1.4 logger,也就是jdk自带的。如果你的jdk版本低于1.4的话,commong logging会有一个替代实现。
既然采用了jdk1.4logger,那么接下来就要设置log输出的配置文件logging.properties(放在src下,名字当然有默认的最稳妥),内容如下:
# handlers
handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler
# general level
.level=INFO
# file handler
java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
# console handler
java.util.logging.ConsoleHandler.level = FINEST
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
test.de.jayefem.log4e.logkits.JDK1_4_Logging.level = FINEST
具体内容大致可以猜出来的,如果你了解log4j的话。接下来只要写如下的java代码就可以直接调用熟悉的Log.debug()了。
private static final Log log = LogFactory.getLogger(YourClass.class);
log.debug("debug");
如果要换用log4j的话,只要将common logging.properties中的启用log4j并注释掉jdk1.4,然后增加log4j.properties:
log4j.rootCategory=debug, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%4r [%t] %-5p %c %x - %m%n
对于上面同样的java代码,会采用log4j来做日志。
你还可以在 这里找到更多的一些log框架的配置。 <script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
首先可以参看它的官方 User Guide,里面有很多基本的重要的信息,尤其是如何判断采用哪个log框架。具体的:
- Look for a configuration attribute of this factory named
org.apache.commons.logging.Log
(for backwards compatibility to pre-1.0 versions of this API, an attributeorg.apache.commons.logging.log
is also consulted). Configuration attributes can be set explicitly by java code, but they are more commonly set by placing a file named commons-logging.properties in the classpath. When such a file exists, every entry in the properties file becomes an "attribute" of the LogFactory. When there is more than one such file in the classpath, releases of commons-logging prior to 1.1 simply use the first one found. From release 1.1, each file may define apriority
key, and the file with the highest priority is used (no priority definition implies priority of zero). When multiple files have the same priority, the first one found is used. Defining this property in a commons-logging.properties file is the recommended way of explicitly selecting a Log implementation. - Look for a system property named
org.apache.commons.logging.Log
(for backwards compatibility to pre-1.0 versions of this API, a system propertyorg.apache.commons.logging.log
is also consulted). - If the Log4J logging system is available in the application class path, use the corresponding wrapper class (Log4JLogger).
- If the application is executing on a JDK 1.4 system, use the corresponding wrapper class (Jdk14Logger).
- Fall back to the default simple logging wrapper (SimpleLog).
#
#org.apache.commons.logging.LogFactory=
# org.apache.commons.logging.impl.LogFactoryImpl
# SimpleLog
#org.apache.commons.logging.Log = org.apache.commons.logging.impl.SimpleLog
# JDK 1.4 logger
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
# Avalon Toolkit
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.LogKitLogger
# Log4j
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
内容很容易理解了,就是定义commong logging用哪个log封装类,而这个封装类就会调用相应的log框架进行日志输出。这里采用jdk1.4 logger,也就是jdk自带的。如果你的jdk版本低于1.4的话,commong logging会有一个替代实现。
既然采用了jdk1.4logger,那么接下来就要设置log输出的配置文件logging.properties(放在src下,名字当然有默认的最稳妥),内容如下:
# handlers
handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler
# general level
.level=INFO
# file handler
java.util.logging.FileHandler.pattern = %h/java%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
# console handler
java.util.logging.ConsoleHandler.level = FINEST
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
test.de.jayefem.log4e.logkits.JDK1_4_Logging.level = FINEST
具体内容大致可以猜出来的,如果你了解log4j的话。接下来只要写如下的java代码就可以直接调用熟悉的Log.debug()了。
private static final Log log = LogFactory.getLogger(YourClass.class);
log.debug("debug");
如果要换用log4j的话,只要将common logging.properties中的启用log4j并注释掉jdk1.4,然后增加log4j.properties:
log4j.rootCategory=debug, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%4r [%t] %-5p %c %x - %m%n
对于上面同样的java代码,会采用log4j来做日志。
你还可以在 这里找到更多的一些log框架的配置。 <script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>