- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
log4j 配置详解
1. 概述
背景
在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作;跟踪代码运行时轨迹,作为日后审计的依据;担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息。
最普通的做法就是在代码中嵌入许多的打印语句,这些打印语句可以输出到控制台或文件中,比较好的做法就是构造一个日志操作类来封装此类操作,而不是让一系列的打印语句充斥了代码的主体。
Log4j 简介
在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,
Apache 为我们提供了一个强有力的日志操作包-Log4j。
Log4j 是 Apache 的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI 组件、甚至是套接口服务器、NT 的事件记录器、UNIX Syslog 守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
此外,通过 Log4j 其他语言接口,您可以在 C、C+ +、.Net、PL/SQL 程序中使用Log4j, 其语法和用法与在Java 程序中一样,使得多语言分布式系统得到一个统一一致的日志组件模块。而且,通过使用各种第三方扩展,您可以很方便地将Log4j 集成到J2EE、JINI 甚至是 SNMP 应用中。
本文介绍的Log4j 版本是 1.2.3。作者试图通过一个简单的客户/服务器 Java 程序例子对比使用与不使用Log4j 1.2.3 的差别,并详细讲解了在实践中最常使用Log4j 的方法和步骤。在强调可重用组件开发的今天,相信 Log4j 将会给广大的设计开发人员带来方便。加入到 Log4j 的队伍来吧!
2. 一个简单的例子
我们先来看一个简单的例子,它是一个用 Java 实现的客户/服务器网络程序。刚开始我们不使用Log4j,而是使用了一系列的打印语句,然后我们将使用Log4j 来实现它的日志功能。这样,大家就可以清楚地比较出前后两个代码的差别。
不使用Log4j
客户程序
package log4j ;
import java.io.* ; import .* ;
/**
*
p Client Without Log4j /p
p Description: a sample with log4j/p
@version 1.0
*/
public class ClientWithoutLog4j {
/**
*
* @param args
*/
public static void main ( String args [] ) {
String welcome = null; String response = null;
BufferedReader reader = null; PrintWriter writer = null; InputStream in = null; OutputStream out = null; Socket client = null;
try {
client = new Socket ( localhost, 8001 ) ; System.out.println ( info: Client socket: + client ) ;
in = client.getInputStream () ; out = client.getOutputStream () ;
} catch ( IOException e ) {
System.out.println ( error: IOException : + e ) ; System.exit ( 0 ) ;
}
try{
reader = new BufferedReader( new InputStreamReader ( in ) ) ; writer = new PrintWriter ( new OutputStreamWriter ( out ), true ) ;
welcome = reader.readLine () ;
System.out.println ( debug: Server says: + welcome + ) ;
System.out.println ( debug: HELLO ) ; writer.println ( HELLO ) ;
response = reader.readLine () ;
System.out.println ( debug: Server res
您可能关注的文档
- Java语言的输入输出流.docx
- Java知识点分析和总结.docx
- Java中final与static关键字总结.docx
- Java中的JTable笔记分析和总结.docx
- JL04 工程预付款付款证书.docx
- joinin五年级(上册)Unit3Time单元测试卷.docx
- Journal of Cleaner Production分析和总结分析和总结.docx
- Journal of Dairy Science A survey of 38 universities that grant 4yr degrees as well as 12 instituti分析和总结分析和总结.docx
- Journal of English for Academic Purposes分析和总结分析和总结.docx
- jQuery选择题分析和总结.docx
文档评论(0)