首先声明:我这里使用的是apache的log4j日志框架,并没有采用slf4j的
因为工作需要,组长要求我对整个项目里面的日志过程进行优化,所有的日志不要全部输出到文件与控制台中去,这会影响实际使用过程中对项目出现问题时维护的困难程度。于是,我便乐在其中,开始在干活过程中对LOG4J实实在在地体验。PS:以前也用过,不过是简单地默认输出文件,而这次,我有了进一步地体会,特地记录下来,作为工作经验。
原理不说,我不是那种人,谢谢。
LOG4J可以自定义多个输出目标,并且提供了多个APPENDER供我们使用,我在项目中常用的是:DailyRollingFileAppender(每日生成一个日志文件),ConsoleAppender(输出到控制台),JDBCAppender(写入数据库)。
对于日志文件的配置,LOG4J支持配置相对路径和绝对路径两种形式。
对于写入到数据库,除了声明适用jdbcappender以外,要显式声明DB的URL,DRIVER,USER,PASSWORD,更主要的,是务必确认在你的数据库里有一张日志表,你需要在配置文件里指定插入日志表的INSERT语句。
今天需要处理的日志情况是,把业务部分的info级别的日志分别写入数据库里面。这样,我们需要在配置文件中指定一些指定目录下的logger输出地,比如:log4j.logger.com.golden.service=JDBC。这里是说,在目录com.golden.service下所有的JAVA文件里,有调用日志信息的地方,全部写到名为JDBC所配置的appender里面。我这里配置的是写入数据库:
log4j.appender.JDBC=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.JDBC.Threshold=info 记录info级别调用的日志
log4j.appender.JDBC.URL=你的数据库URL
log4j.appender.JDBC.driver=com.mysql.jdbc.Driver 我用MYSQL
log4j.appender.JDBC.user=root
log4j.appender.JDBC.password=root
log4j.appender.JDBC.sql=INSERT INTO 你的日志表 (userid,msg,date) values('%XuserId','m%','d%')
简单说明:%X是LOG4J提供给我们的可以自定义接收的参数,这里,你只需要在日志输出地方加一句MDC.put("userId","admin"),这样LOG4J就能接收到admin了。MDC包装了一个MAP信息去封存我们要传的参数,它也暴露了静态方法让我们去自己添加想要传递的日志信息,这个在插入数据表的操作十分有用。
其实,LOG4J自身提供的JDBC模式写入日志表,缺点也有。特别是BS系统,有了自己的JDBC连接方式,SPRING的也好,HIBERNATE的也好。如果写入日志表,再自己创建JDBC连接,这样对数据库的负担会很重,等于一个用户在操作系统的同时,为他同时开了两个连接。网上有大虾的做法是自定义jdbcappender,可使用自己项目中的连接方式,这个网上有人贴出源代码。我没做过类似的东西,肤浅得很啊。
就先这些吧,挺新手的。
分享到:
相关推荐
本文将重点探讨两个在Java世界中广泛使用的日志框架——Commons Logging和Log4j,以及它们如何协同工作。 #### Commons Logging:日志接口的标准 Commons Logging由Apache提供,其主要目标是作为一个轻量级的日志...
在《Log4j将System.out搞到log4j中输出四》这篇博文中,作者可能详细讨论了这些步骤,并可能分享了一些实战经验。通过学习这篇博文,读者可以更深入地了解如何在实际项目中实现这一转换,提升日志管理的效率。 总结...
**Log4j学习笔记** Log4j是一款广泛应用于Java编程中的日志记录工具,由Apache软件基金会开发。它提供了一种灵活且强大的机制来记录应用的运行情况,这对于调试、性能分析、问题追踪以及系统监控至关重要。这篇学习...
### log4j中文手册知识点概览 ...综上所述,`log4j`是一款强大且灵活的日志记录工具,通过上述知识点的学习,我们不仅可以快速掌握其基础使用方法,还能深入理解其内部机制,更好地应用于实际项目中。
总结来说,Log4j作为一个强大的日志框架,其强大的功能和高度可定制性使得它在Java项目中占据着重要地位。正确理解和使用log4j-1.2.16.jar,不仅可以提升开发效率,还能为项目的稳定性和维护性提供有力保障。通过...
在标题“log4j实例,log4j-1.2.9.jar”中,我们看到的是Log4j的一个具体版本——1.2.9。这个版本虽然相对较旧,但它仍然是许多现有项目的基础,因为它稳定且功能齐全。 **1. Log4j的核心组件** Log4j由三个主要...
总结来说,log4j 1.2.15的源码学习对于Java开发者而言是一次宝贵的实践机会,能够帮助我们了解日志框架的设计思路,提升解决问题的能力。通过对源码的阅读和理解,我们可以更好地利用log4j,同时也能为未来的日志...
Log4j是一款广泛应用于Java平台的日志记录框架,它提供了灵活且...通过学习和掌握Log4j,开发者可以提高代码的可维护性和问题定位的效率。在实际应用中,根据项目需求调整配置文件,可以实现对日志的精细化管理和控制。
标题“phplog4j”可能指的是一个PHP版本的Log4j实现,Log4j是Java领域的一款著名日志记录框架,用于在应用程序中方便地管理和记录日志信息。PHP作为一个广泛应用的服务器端脚本语言,也有类似的需求,因此出现了...
**标题与描述解析** 标题“log4j.rar log4j使用...通过阅读提供的`log4j使用方法.doc`文档,你可以更深入地学习如何在你的项目中有效地利用log4j。而`log4j.rar`文件则可能包含实际操作的例子,可以帮助你实践所学。
总结来说,Apache Log4j 2.3 和 Commons Logging 1.2 在Java Web开发中扮演着重要角色,它们帮助开发者方便地记录、管理和分析应用程序的日志,提升开发效率和问题排查能力。这两个库的结合使用,能够实现日志系统的...
**Log4j** 是 **Apache** 组织提供的一个开源日志框架,旨在简化应用开发中的日志记录工作。它能够灵活地记录程序运行时的信息,并允许用户自定义日志的级别、输出目标以及日志格式等。 - **官方网站**: ...
**标题与描述解析** ...通过Eclipse工程文件,学习者可以深入理解Log4j的工作原理,以及如何配置和使用它来适应不同场景的需求。这个实例工程为开发者提供了一个实践Log4j功能的平台,有助于提高日志管理能力。
**正文** 日志系统在软件开发中扮演着至关重要的角色,它可以帮助开发者追踪程序...在"log4j日志打印demo"中,你将学习到如何设置Log4j以实现控制台和SD卡(针对Android)的日志输出,从而在实际开发中更加得心应手。
### log4j注释文档详解 ...正确配置log4j可以帮助开发者高效地管理和分析程序运行过程中的信息,对于软件开发和维护具有重要意义。希望初学者能够结合实际项目需求,灵活运用log4j的各种配置选项,提高开发效率。
### Log4j入门详解 #### 1. Log4j简介 ...总结而言,Log4j是一个非常强大的日志管理工具,通过合理的配置可以极大地提高日志记录的效率和可读性。无论是初学者还是经验丰富的开发者,都能从中受益。
### Log4J 最简入门详解 #### 一、Log4J简介与基本概念 Log4J是一款非常流行的Java日志框架,由Apache...通过学习这些基础内容,开发者可以轻松地在自己的项目中集成Log4J,从而更好地管理和调试应用程序的日志信息。
**日志系统的重要性** 在软件开发中,日志系统扮演着至关重要的角色。...深入学习和理解Log4j,能够极大地提高你的开发效率和问题排查能力。在实践中不断探索,你会发现更多Log4j的高级特性和应用场景。
在提供的"Log4j"压缩包文件中,很可能包含了Log4j的官方帮助文档和一些示例代码。通过阅读文档,你可以详细了解Log4j的配置选项和使用方法。而实例代码则可以帮助你更好地理解Log4j在实际项目中的应用,通过运行和...