- 浏览: 179100 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
Caelebs:
RMI及其调试(JDK1.6) -
walker2009:
...
svn如何使用import目录作为工作拷贝+我的svn学习笔记(转) -
ygsilence:
请问,怎么linux版本的xampp怎么整合现有tomcat, ...
[原创]xampp-tomcat- connector---- xampp 完美整合现有的tomcat [续] -
witcheryne:
zrong 写道skanion 写道VIMweejulius ...
svn + vim + ant + linux 竟然完全替代了eclipse -
zrong:
skanion 写道VIMweejulius 写道怎么重构用V ...
svn + vim + ant + linux 竟然完全替代了eclipse
java.util.logging.Logger
我们先来说下JDK1.4以后出现的java.util.logging日志记录。
说到日记记录我们当然会想到往那里存?以什么格式打印结果?
这2个问题对象的java类是Handler,和Formatter,然而日记记录还有一个功能就是等级划分。JDK中的日记记录分为7个等级,分别是
SEVERE (highest value)
WARNING
INFO
CONFIG
FINE
FINER
FINEST (lowest value)
为什么要定义等级呢,这是因为一个项目在不同的阶段需要测试不同的部分和对信息进行分级测试。Logger里有相对应的方法打印出不同等级的信息.如logger.info(“”);logger.fine();等
同时他里面还有addHandler(Handler handler) 添加Handler(常用的有ConsoleHandler)
但是通过在JAVA类里配置大大降低了灵活性。所以一般都用一个properties文件配置
handlers=java.util.logging.ConsoleHandler
.level=FINE
java.util.logging.ConsoleHandler.level=FINEST
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
maomao.level=FINEST
这个是一个最简单的例子.
其实我们在程序里直接用(下面代码)logger为什么能打印出信息呢,只是因为这时候他会去加载jre/lib/logging.properties.所以程序能运行。但是如果要用我们自己的properties文件配置就需要传如一个jvm参数。如-Djava.util.logging.config.file=myfile
Logger logger = Logger.getLogger("maomao.test");
logger.finest("The messsage is finest");
logger.finer("The message is finer");
logger.fine("The message is fine");
logger.config("The message is config");
logger.info("The message is info");
logger.warning("The message is warning");
logger.severe("The message severn");
apache-log4j
与jdk-logger不同的是log4j只定义了5个级别分别是debug,warn,info,error,fatal.
他下面常常用的类有
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
# org.apache.log4j.ConsoleAppender(控制台),
# org.apache.log4j.FileAppender(文件),
# org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
# org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
# org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
log4j.appender.Threshold=DEBUG
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
# org.apache.log4j.HTMLLayout(以HTML表格形式布局),
# org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
# org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
# org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
log4j.appender.CONSOLE.layout.ConversionPattern=-[%p]-[%l]- %m%n
# %m:产生的日志具体信息
# %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
# %r 输出自应用启动到输出该log信息耗费的毫秒数
# %c 输出所属的类目,通常就是所在类的全名
# %t 输出产生该日志事件的线程名
# %n 输出一个回车换行符,Windows平台为“ ”,Unix平台为“ ”
# %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
# %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
以上这些类其他书上和网上都很容易找到资料,现在我们只举例2个类的配置
# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG,A1
# A1 is set to be a ConsoleAppender
log4j.appender.A1=org.apache.log4j.ConsoleAppender
# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r[%t]%-5p%c%x -%m%n
#org.apache.log4j.RollingFileAppender
#log4j.logger.com.apache.log4j.model=ERROR,A2
#log4j.appender.A2=org.apache.log4j.RollingFileAppender
#log4j.appender.A2.File=c\:\\maomao.txt
#log4j.appender.A2.MaxFileSize=1KB
#log4j.appender.A2.MaxBackupIndex=5
#log4j.appender.A2.layout=org.apache.log4j.PatternLayout
#log4j.appender.A2.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
#org.apache.log4j.DailyRollingFileAppender
log4j.logger.com.apache.log4j.model=ERROR,A2
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.File=C\:\\file1.txt
log4j.appender.A2.DatePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%-4r[%t]%-5p%c%x-%m%n
#org.apache.log4j.jdbc.JDBCAppender
#log4j.logger.com.apache.log4j.model=ERROR,A2
#log4j.appender.A2=org.apache.log4j.jdbc.JDBCAppender
#log4j.appender.A2.Driver=oracle.jdbc.driver.OracleDriver
#log4j.appender.A2.URL=jdbc:oracle:thin:@127.0.0.1:1521:orcl
#log4j.appender.A2.User=system
#log4j.appender.A2.Password=maomao
#log4j.appender.A2.layout=org.apache.log4j.PatternLayout
#log4j.appender.A2.sql=insert into table3(id,log) values('%t','%m')
很简单吧,自己看吧,西西。
这里提醒下如果想设置logger. setAdditivity(false)
log4j.additivity.com.apache.log4j.model=false;
还有个commons-logging他是上面2者的结合,有兴趣者自己查
发表评论
-
(转)postgreSQL 实现按月按年,按日统计 分组统计
2011-12-26 18:11 3901--按年分组查看 select to_char ... -
(转)aop:pointcut expression解析
2011-12-26 14:20 1222execution(* com.aptech.jb.epet. ... -
(转)SQL语句中,为什么where子句不能使用列别名,而order by却可以
2011-12-05 10:34 2161sqlserver查询的执行顺序是: (1)FROM < ... -
postgresql 导入和导出数据
2011-09-22 10:59 6277自oracle自收购sun以来,牵起了对java的种种纠纷, ... -
JSP页面跳转方法荟萃
2011-09-19 14:23 14861. response.sendRedirct("跳 ... -
如何同时启动多个Tomcat服务器(转)
2011-09-16 10:05 849前些时日,出于某种需要,需要同时启动多个Tomcat服务器,在 ... -
在浏览器查看svn中代码的解决方案(转)
2011-09-15 15:38 5245重新安装svn+apache以后,发现一个问题,比如java源 ... -
如何让svnserve.exe在WINDOWS中自动运行
2011-09-15 14:50 1188将svn设置成为系统服务自动运行就行了。 方法: 在Windo ... -
[原创]SS FrameWork For PHP 4.0 (专注于extjs和flex的PHP MVC核心框架)
2011-09-15 13:28 3591这是我以前写的PHP MVC 框架核心, 麻雀虽小五脏俱全,完 ... -
[原创]xampp-tomcat- connector---- xampp 完美整合现有的tomcat [续]
2011-09-15 13:18 5654在笔者拙作 xampp(apache+mod_jk)整合现有 ... -
Bat脚本中带ANT命令,会忽略ANT后面的命令?
2011-09-14 15:47 1955如题, bat中带有ant -debug 则后面的命令没有执行 ... -
xampp(apache+mod_jk)整合现有的tomcat
2011-09-14 12:15 52511. Xampp官网 http://www.apach ... -
svn + vim + ant + linux 竟然完全替代了eclipse
2011-09-14 09:18 3140很难想象, 一个公司只用 svn + vim + ant + ... -
Ant <Delete> 如何只删掉文件夹下所有文件和文件夹(转)
2011-09-13 18:20 3523用fileset 来过滤要删掉的目录和文件 <dele ... -
ANT的安装/配置笔记(转)
2011-09-13 14:38 752内容摘要: ant是一个基 ... -
windows 安装tomcat服务
2011-09-13 14:16 1020D:\usr\tomcat\bin>service.ba ... -
struts 1 中 <html:form>
2011-09-13 12:03 11732来看看 使用 ActionForm 这个主题,当时使用了一个静 ... -
关于struts标签bean:message(转)
2011-09-13 11:55 1250bean:message标签用来从指 ... -
Servlet中的filter(转)
2011-09-13 11:21 1029Filter:Filter 技术是servlet 2.3 新增 ... -
Filter的用处与种类
2011-09-13 11:19 1234Filter有如下几个用处。 •在HttpServletRe ...
相关推荐
SLF4J (Simple Logging Facade for Java) 是一个用于日志记录的接口层,它为各种日志框架,如Logback、Log4j、Java Util Logging等提供了一个统一的API。SLF4J的主要目的是使得应用程序可以在部署时选择任何支持的...
这些接口包括最基本的`org.apache.logging.log4j.Logger`,它是所有日志记录的起点,以及`org.apache.logging.log4j.LogManager`,它负责管理日志配置和日志器实例。API库的主要目标是与实现层解耦,允许开发者在不...
SLF4J(Simple Logging Facade for Java)是Java中的一种日志抽象层,它提供了一个API,允许开发者选择自己偏好的日志框架,如Log4j、Java Util Logging、Logback等。SLF4J的主要目的是为了简化日志处理,使得在不同...
SLF4J的主要目的是为各种日志框架(如log4j、java.util.logging、Logback等)提供一个简单、一致的接口,使得开发人员能够在不修改代码的情况下切换日志框架。"slf4j-log4j12-1.5.8.jar.zip"这个压缩包包含了SLF4J与...
Commons Logging 提供了一组接口和辅助类,使得应用程序可以透明地使用任何兼容的日志实现,如Log4j、Java内置的日志API(java.util.logging)或者简单的控制台输出。这个库的主要优点是灵活性和可插拔性,开发者...
SLF4J的主要目标是为各种日志框架,如logback、log4j、Java Util Logging等,提供一个简单的统一的API。通过SLF4J,开发者可以在开发阶段使用SLF4J接口编写日志代码,然后在部署时选择合适的日志实现。这极大地提高...
由于commons-logging的存在,你无需直接使用log4j的类,而是通过`java.util.logging.Logger`的接口来实现日志记录,commons-logging会自动找到log4j作为底层实现。 总之,log4j.jar和commons-logging.jar是Java开发...
Apache Commons Logging 提供了一个API,开发人员可以使用这个API编写日志语句,然后在运行时通过配置来决定实际的日志实现,如Log4j、java.util.logging(也称为JUL)或简单的控制台日志。 标题中的"apache-...
2. **替换日志语句**:将所有直接引用特定日志系统的代码(例如`java.util.logging.Logger`或`log4j.Logger`)替换为SLF4J的API,如`org.slf4j.Logger`和`LoggerFactory.getLogger()`。 3. **配置Log4j**:创建一个...
<listener-class>org.apache.logging.log4j.web.Log4jServletContextListener</listener-class> ``` 5. **输出到日志文件** - 在log4j配置文件中,我们已经定义了日志输出到文件,如`/var/log/app.log`。`...
总的来说,这个组合——Tomcat的JULI适配器与Log4j——提供了一个灵活且强大的日志解决方案,让开发者能够更好地控制和利用服务器的日志信息。记住,合理地管理和分析日志数据,是提升应用性能和稳定性的重要一环。
它作为一个抽象层,允许开发者选择底层的日志实现,如Log4j、java.util.logging等。在使用Log4j时,这个库作为桥梁,使得应用能够透明地调用Log4j的API。 **二、Log4j配置文件** 在压缩包中,还包含了一份名为`log...
此库提供了一个接口,允许Ant和其他基于Java的项目独立于具体的日志实现(如log4j、java.util.logging或Apache Log4j)进行日志记录。这样做的好处在于,开发者可以根据项目需求选择不同的日志框架,而无需修改代码...
SLF4J API不包含任何具体日志实现,而是通过绑定机制与具体日志框架(如Log4j、Java Util Logging等)进行连接。 SLF4J-api-1.7.25.jar是SLF4J的核心API库,其中包含了用于记录日志的接口和类。开发者在编写代码时...
与Tomcat的JULI(Java Util Logging)相比,Log4j提供了更丰富的功能和更好的性能。 以下是使用Log4j接管Tomcat日志的步骤: 1. **添加依赖**:将`log4j-1.2.17.jar`添加到Tomcat的`lib`目录。如果Tomcat使用的是...
另外,java.util.logging生成的日志格式与项目中使用Log4j记录的日志格式不一致,这会导致在后期日志分析时出现格式不统一的问题。 为了改善这些问题,Tomcat提供了一种机制,允许我们通过配置和替换特定的jar包来...
Shiro 提供的日志支持是通过其内置的日志接口实现的,该接口允许开发者选择不同的日志实现,如 Log4j、Java Util Logging 或 SLF4J。集成 Log4j 可以利用其丰富的配置选项和强大的日志处理能力,例如,你可以控制...
在这个文件中,我们将配置JULI(Java Util Logging)来使用Log4j。 ```properties # logging.properties handlers = org.apache.juli.FileHandler, org.apache.log4j.ConsoleHandler org.apache.juli.FileHandler....
通过Commons Logging,开发者可以在不修改代码的情况下切换底层的日志实现,如从Log4j切换到java.util.logging或者其它日志库。这种抽象层的设计使得应用程序具有更好的移植性和可维护性。 在实际应用中,将Log4j和...
这篇博客"Apache Commons Logging整合Log4j简单例子"显然会引导我们如何将ACL与Log4j集成,以便在我们的Java应用中使用Log4j作为日志记录器。Log4j是一款功能强大的日志框架,提供灵活的日志配置和多种输出选项,如...