在Java中那个开源日志怎么使用

 我来答
oraclehlc
2012-06-19 · 超过16用户采纳过TA的回答
知道答主
回答量:69
采纳率:100%
帮助的人:39.4万
展开全部
网上有log4j是管理日志信息的。log4j由三个重要的组件构成:日志信息的优先级、日志信息的输出目的地、日志信息的输出格式。日志信息的优先级从高到低有Error、warn、info、debug,分别用来指定这条日志信息的重要程度:日志信息的输出目的地指定了日志将打印到控制台还是文件中,而输出格式则控制了日志信息的显示内容。
定义配置文件:log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件(键=值)。下面介绍使用java特性文件作为配置文件的方法:
1、配置根Logger,其语法为:
log4j.rootLogger = [level],appenderName,appenderName,
其中,level是日志记录的优先级,分为off、fatal、error、warn、info、debug、all或者您定义的级别。log4j建议只使用四个级别,优先级从高到低分别是error、warn、info、debug。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有debug级别的日志信息将不被打印出来。appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。
2、配置日志信息输出目的地Appender,其语法为:
log4j.appender.appenderName=fully.qualified.name.of.appender.class
log4j.appender.appenderName.options=value1
log4j.appender.appenderName.options=value2
log4j.appender.appenderName.options=value3
log4j.appender.appenderName.options=value4

log4j.appender.appenderName.options=valuen
其中,log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)。

3、配置日志信息的格式(布局),其语法为:
log4j.appender.appenderName.layout=fully.qualified.name.of.layout.class

log4j.appender.appenderName.layout.option1=value1
log4j.appender.appenderName.layout.option1=value2
log4j.appender.appenderName.layout.option1=value3
log4j.appender.appenderName.layout.option1=valuen

其中,log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

log4j采用类似c语言中的printf函数的打印格式化日志信息,打印参数如下:
%m 输出代码中指定的消息
%p 输出优先级,即debug、info、warn、error、fatal
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,windows平台为“\r\n”,Unix平台为"\n"
%d 输出日志事件点的日期或时间。默认格式为ISO8601,也可以再其后指定格式,比如:%d{yyyy MM dd hh:mm:ss,SSS},输出类似:2012年6月19日 21:46:28,987
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。

使用日志记录工具log4j
步骤:
1.在项目中添加log4j的jar包:
项目名右键->Properties(属性)
->选择java build path->选择libraries
->选择Add external Jars
->选择log4j.jar包确定完成
2.创建log4j.properties文件
log4j.properties必须放到src目录下,文件名必须是log4j。
3.编写log4j.properties文件
4.在程序中使用log4j记录日志信息

首先为你的项目添加log4j的jar包。
在你的项目的src下创建一个文件,名为log4j.properties;文件里不要有中文,如果有的话需要用native2asiic转换成Unicode码。文件内容是:

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=accp.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%n

log4j.rootLogger=info, stdout, file

做一个测试类:
package test;

import org.apache.log4j.Logger;

public class TeacherTest {

/**
* @param args
*/
public static void main(String[] args) {
//创建日志对象
Logger log=Logger.getLogger("TeacherTest");
Teacher teacher = new Teacher();
try {
log.debug("程序开始,记录日志");
teacher.setId("088");
} catch (Exception e) {
// TODO Auto-generated catch block
log.error("长度必须是7位数字");
//e.printStackTrace();
}
log.info("日志记录结束");
//System.out.println("程序结束!");

}

}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式