|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
当你在开发程序的时候, 调试(debugging)和日志(logging)都是异常重要的工作, 但是, 现在有太多的 logging API 问世, 因为他们都不错, 很难做一个抉择. 国外 java 论坛对于这些 logging 方法也是有一番讨论. 而 common logging 就是一个在这几个不同的 logging API 中建立小小的桥梁.目前在 Java 中最著名的 Log 方法, 首推是 Log4j, 另是 JDK 1.4 Logging API. 除此之外, 还有 Avalon 中用的 LogKit 等等 . 而 commons-logging 也有实现一些基本 的 logging 方法为 NoOpLog 及 SimpleLog. 对于他们的比较不在这次讨论范围, 有爱好者请自行参阅参考文件. 迅速使用 Logging 其实 logging 异常简朴去使用, 将 commons-logging.jar 放到 /WEB-INF/lib 之下.接著写以下的代码 LoggingTest.java package com.softleader.newspaper.java.opensource; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class LoggingTest { Log log = LogFactory.getLog(LoggingTest.class); public void hello() { log.error(\"ERROR\"); log.debug(\"DEBUG\"); log.warn(\"WARN\"); log.info(\"INFO\"); log.trace(\"TRACE\"); System.out.println(\"OKOK\"); } } 在 / 放置一个 jsp 测试 test-commons-logging.jsp <%@ page import=\"com.softleader.newspaper.java.opensource.LoggingTest\" %> <% LoggingTest test = new LoggingTest(); test.hello();%> 你将会看到 tomcat console 会有下面输出 log4j:WARN No appenders could be found for logger (com.softleader.newspaper.java.opensource.LoggingTest). log4j:WARN Please initialize the log4j system properly.OKOK 是因为你还没有配置 commons-logging.properties, 立刻会为你介绍 ~~~. 设定 commons-logging.properties 你可以设置你的 log factory 是要使用哪一个 我以 Log4J 为例子 在 /WEB-INF/classes/commons-logging.properties 中写入 org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JCategoryLog 假如你 server 是使用 jdk1.4 以上的版本 可以使用 org.apache.commons.logging.impl.Jdk14Logger 接著根据你的 Logger 撰写符合他的 properties 拿 Log4j 为例子 你就要在 /WEB-INF/classes/ 下放置一个 log4j.properties //日志输出到文件 log4j.rootLogger=DEBUG, A_default log4j.appender.A_default=org.apache.log4j.RollingFileAppender log4j.appender.A_default.File=c://log/test.log log4j.appender.A_default.MaxFileSize=4000KB log4j.appender.A_default.MaxBackupIndex=10 log4j.appender.A_default.layout=org.apache.log4j.PatternLayout log4j.appender.A_default.layout.ConversionPattern=%d{ISO8601} - %p - %m%n # 比较完整的输出 # log4j.appender.A_default.layout.ConversionPattern=%d %-5p [%t] %-17c{2} (%13F:%L) %3x - %m%n //日志输出到控制台 log4j.rootLogger=INFO, A1 log4j.appender.A1=org.apache.log4j.ConsoleAppender log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n 此时你去执行 test-commons-logging.jsp 输出的内容, 就会记录在你的 c:/log 目录的 test.log 中了 ps:假如没有相关的 class 会使用到 SimpLog, 此时要设定的是 simplelog.properties 结论以我自己本身使用的经验, Log4j 可以满意所有工程师, 所以我也是直接使用 log4j 而没有使用 commons-logging. 不过为了增加产品的通用性, 避免移植时候的麻烦, 新的产品及项目, 我会将他改成 commons-logging api 去调用. 假如你对commons-logging的工作原理不是很了解,请参考<commons-logging的使用方式> 返回类别: 教程 上一教程: jsp页面中的有关字符集 这样 下一教程: Java基础之要害字 您可以阅读与"java Logging API 使用"相关的教程: · JAVA LOGGING API 使用 · 全面挖掘Java Excel API 使用方式(2) · 全面挖掘JAVA EXCEL API 使用方式 · 使用JavaExcel API 往excel中插入图片 · 全面挖掘Java Excel API 使用方式 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |