java Logging API 使用

当你在开发程序的时候, 调试(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的使用方法>

时间: 2024-09-22 15:40:23

java Logging API 使用的相关文章

全面挖掘Java Excel API 使用方法

excel 使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用Java语言来操纵Excel文件并不是一件容易的事.在Web应用日益盛行的今天,通过Web来操作Excel文件的需求越来越强烈,目前较为流行的操作是在JSP或Servlet 中创建一个CSV (comma separated values)文件,并将这个文件以MIME,text/csv类型返回给浏览器,接着浏览器调用Excel并且显示CSV文件.这样只是说可以访问到Excel文件,但是还不能真正的操纵Ex

全面挖掘Java Excel API 使用方法(1)

excel 使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用Java语言来操纵Excel文件并不是一件容易的事.在Web应用日益盛行的今天,通过Web来操作Excel文件的需求越来越强烈,目前较为流行的操作是在JSP或Servlet 中创建一个CSV (comma separated values)文件,并将这个文件以MIME,text/csv类型返回给浏览器,接着浏览器调用Excel并且显示CSV文件.这样只是说可以访问到Excel文件,但是还不能真正的操纵Ex

Java Servlet API说明文档(2.1a版)(一)

servlet 绪言 这是一份关于2.1版Java Servlet API的说明文档,作为对这本文档的补充,你可以到http://java.sun.com/products/servlet/index.html下面下载Javadoc格式的文档. 谁需要读这份文档 这份文档描述了Java Servlet API的最新版本2.1版.所以,这本书对于Servlet的开发者及servlet引擎的开发者同样适用. Java Servlet API的组成 Java Servlet API由两个软件包组成:一

Java Servlet API说明文档(2.1a版)(二)

servlet API对象的说明\r 这一部分包含了对Java Servlet API的全部类和接口的详细说明.这个说明与Javadoc API差不多,但是这份文档提供了更多的信息.API包含了两个软件包,十二个接口和九个类.软件包:javax.servlet 所包含的接口:RequestDispatcher:Servlet:ServletConfig:ServletContext:ServletRequest:ServletResponse:SingleThreadModel.所包含的类:Ge

Java Mail API及其应用 —— 一个邮件列表服务器的实现 (三)(转贴)

服务器|邮件列表 相关资源1.Java Mail API软件包下载(版本1.1.2) ftp://usmt.java.sun.com/pub/javamail/tyo39/javamail1_1_2.zip 缺省POP3实现软件包下载: ftp://usmt.java.sun.com/pub/javamial/tyo39/pop31_1.zip 以上文件也可以从Sun的Java Mail API主页下载 http://java.sun.com/products/javamail/ 2.JavaB

Java Mail API及其应用 —— 一个邮件列表服务器的实现 (二)(转贴)

服务器|邮件列表 邮件列表服务经常用于为工作组提供基于email的讨论环境,订阅者通过它讨论共同感兴趣的问题. 本文提供的示例程序ListServer是一个简单的邮件列表转发服务器:它从指定帐号读取新邮件并发送给所有订阅者.Java Mail API不仅使得实现其基本功能相当简单(使用缺省的POP3和SMTP),而且保证了程序易于支持任何可能遇到的系统环境. 运行该程序需要包含以下支持文件:Java Mail (mail.jar).JAF(activation.jar)以及缺省的POP3支持(p

Java Mail API及其应用 —— 一个邮件列表服务器的实现 (一)(转贴)

服务器|邮件列表 Java Mail API 是Sun开发的最新标准扩展API之一,它给Java应用程序开发者提供了独立于平台和协议的邮件/通讯解决方案.本文介绍该API的核心机制,并通过一个邮件转发服务器(邮件列表服务器)演示其具体用法. Java Mail API的开发是Sun为Java开发者提供公用API框架的持续努力的良好例证.提倡公用框架,反对受限于供应商的解决方案,充分预示着一个日益开放的开发环境的建立. 在email通讯领域,面向最终应用的开发者(以及用户)已经能够购买到最适合他们

Java Servlet API说明文档

译者前言: 近来在整理有关Servlet资料时发现,在网上竟然找不到一份中文的Java Servlet API的说明文档,而在有一本有关JSP的书后面附的Java Servlet API说明竟然不全,而这份文档的2.1a版在1998年的11月份就已定稿.所以我决定翻译一份中文的文档(其中一些与技术关系不大的部分已被略去),有兴趣的读者可以从http://java.sun.com/products/servlet/2.1/servletspec-2.1.zip下载原文阅读. Java Servle

集成JPA与pureQuery: 让Java Persistence API利用DB2静态执行

IBM WebSphere Application Server V7 交付了对其 Java Persistence API (JPA) 实现的增强,支持对 IBM DB2 数据服务器数据访问的优化,以提高安全性,并具备显著降低 数据访问开销的潜力.实现优化的方式是通过使用 WebSphere JPA 与 IBM Data Studio pureQuery 运行 时之间的内置集成来支持静态 SQL 访问--这一切全都不需要更改应用程序代码或运行广泛 的测试用例. 引言 IBM WebSphere