(转)Log4j的应用实例

Log4J使用笔记中没有怎么写实例,那么在这篇中我将Log4j的一个完整应用实例写出。
Log4J使用笔记中我们已经知道同一个日志信息可以同时输出到多个输出目的地。那么在下面的例子中我将演示将日志信息同时输出到控制台,文件和数据库中。首先创建一张表,如下:

log4j.sql

create table log4j
(
    logId int not null auto_increment,--流水号
    createDate varchar(45) default null,--日志生成时间
    thread varchar(45) default null,--当前线程
    level varchar(45) default null,--当前日志的级别
    class varchar(45) default null,--生成日志的类
    message varchar(245) default null,--日志具体信息

    primary key(logId)
)

  

编写配置文件myLog4j.properties

#定义3个输出端
log4j.rootCategory=INFO,A1,A2,A3

#定义A1输出到控制器
log4j.appender.A1=org.apache.log4j.ConsoleAppender
#定义A1的布局模式为PaternLayout
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
# 定义A1的输出格式
log4j.appender.A1.layout.ConversionPattern=%4p [%t] (%F:%L) - %m%n

#定义A2输出到文件
log4j.appender.A2=org.apache.log4j.RollingFileAppender
#定义A2输出到哪个文件
log4j.appender.A2.File=./Sample.log
#定义A2输出文件的最大长度
log4j.appender.A2.MaxFileSize = 1KB
#定义A2的备份文件数
log4j.appender.A2.MaxBackupIndex = 3
#定义A2的布局模式为PatternLayout
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
#定义A2的输出模式
log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd hh:mm:ss}:%p %t %c - %m%n

#定义A3输出到数据库
log4j.appender.A3=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.A3.URL=jdbc:mysql://localhost:3306/study
log4j.appender.A3.driver=com.mysql.jdbc.Driver
log4j.appender.A3.user=root
log4j.appender.A3.password=root
#定义A3的布局和执行的SQL语句
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=INSERT INTO log4j(createDate,thread,level,class,message) values(\‘%d\‘,\‘%t\‘,\‘%-5p\‘,\‘%c\‘,\‘%m\‘)

最后测试程序如下:

    public static void sample()
    {
        Logger logger = Logger.getLogger(Log4jTest.class);
        
        PropertyConfigurator.configure("myLog4j.properties");
        logger.debug("Here is DEBUG messgae");
        logger.info("Here is INFO message");
        logger.warn("Here is WARN message");
        logger.error("Here is ERROR message");
        logger.fatal("Here is FATAL message");
    }

这样当我们运行该程序的时候会同时将上述日志信息转入到三个地方:
控制台:

数据库:

文件:
 
我们已经看到出现Sample.log文件,该文件我们在配置中指定,当然你也可以修改其它地方,另外Log4j的配置文件也放在项目根目录下。
同时当我们多运行几次该程序时,Sample.log超过1KB时就会将该文件自动改名,同时再将日志记录到新的Sample.log文件中,如下:

时间: 2024-08-14 03:29:02

(转)Log4j的应用实例的相关文章

log4j 详细配置实例

一,maven引入jar包 org.slf4j slf4j-api 1.6.6 org.slf4j slf4j-log4j12 1.6.6 log4j log4j 1.2.17 # 二,详细配置: ### root日志 ### log4j.rootLogger = DEBUG, stdout, debug, info , warn, error #控制台日志 log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender

Log4j 日志工具demo以及配置文件实例

在项目中产生日志是一个项目所必须的,现在用的比较广泛,比较流行的日志工具 就有 log4j :这个日志工具其实使用起来是很方便的:在使用的时候创建什么的都和java.util.logging.Logger一样的,而jdk的log日志信息的获取和导出是使用Handler 对象,而导出的信息的格式是通过Formatter对象来定义的而log4j的日志信息导入,以及格式是在配置文件中进行配置的.具体看下面: 1. 导入需要的架包:(1).log4j.jar  (2).commons-pool.jar

Log4J使用

Log4J是Apache的一个开放源码的项目.通过使用Log4J.程序猿能够控制日志信息输送的目的地.包含控制台.文件.GUI组件和NT事件记录器,也能够控制每一条日志的输出格式,或通过定义每一条日志信息的级别,更加仔细地控制日志的生成过程.以下的代码是一个样例: //Log4J public void log4jDemo() { Logger logger = Logger.getLogger(Test.class); FileReader fr = null; try { fr = new

Java学习-007-Log4J 日志记录配置文件详解及实例源代码

此文主要讲述在初学 Java 时,常用的 Log4J 日志记录配置文件详解及实例源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源代码测试通过日期为:2015-1-30 13:54:02,请知悉. 所需的 jar 包下载链接为:http://yunpan.cn/cKE56sxqtQCfP  访问密码 63d8 有关 Log4J 日志文件中日志级别及文件配置的详细情况,在 Log4J 的配置文件(xml.properties)中有详细的介绍,敬请参阅!

Log4j使用详解(log4j.properties格式)

Log4j使用详解(log4j.properties格式) 1.Log4j 的引入 在应用程序中添加日志记录总的来说基于三个目的: ① 监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作: ② 跟踪代码运行时轨迹,作为日后审计的依据: ③ 担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息. 最普通的做法就是在代码中嵌入许多的打印语句,这些打印语句可以输出到控制台或文件中,比较好的做法就是构造一个日志操作类来封装此类操作,而不是让一系列的打印语句充斥了代码的

【转】log4j详解及简易搭建

原文链接:http://www.cnblogs.com/mailingfeng/archive/2011/07/28/2119937.html log4j是一个非常强大的log记录软件. 首先当然是得到log4j的jar档,推荐使用1.2.X版,下载地址: http://logging.apache.org/log4j/1.2/download.html 下面先来看Log4J的类图 Logger - 日志写出器,供程序员输出日志信息 Appender - 日志目的地,把格式化好的日志信息输出到指

Hibernate基础实例

hibernate是orm(对象关系映射)框架 即通过配置文件使对象与数据库表关联 让eclipse断网拥有xml提示功能 ①解压hibernate-core-5.0.7.Final.jar ②进入org\hibernate下复制到单独文件//此处演示配置单个 其余配置同理hibernate-configuration-3.0.dtdhibernate-configuration-4.0.xsdhibernate-mapping-3.0.dtdhibernate-mapping-4.0.xsd

log4j配置记录

①配置根Logger,其语法为:  ##log4j.rootLogger =[level],appenderName,appenderName2,... #level是日志记录的优先级,分为OFF,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,ALL #Log4j建议只使用四个级别,优先级从低到高分别是DEBUG,INFO,WARN,ERROR #通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关 #比如在这里定义了INFO级别,则应用程序中所有DEBUG

分布式实时日志处理平台ELK

这三样东西分别作用是:日志收集.索引与搜索.可视化展现 l  logstash 这张架构图可以看出logstash只是collect和index的地方,运行时传入一个.conf文件,配置分三部分:input ,filter,output. l  redis redis在这里是作为日志收集与索引之间解耦作用 l  elasticsearch 核心组件,用来搜索.主要特点:real-time,distributed,Highly Available,document oriented,schema