我是靠谱客的博主 自信野狼,最近开发中收集的这篇文章主要介绍Log4j日志工具使用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

概念

Log4j是Apache的一个开源项目,是一个使用简单灵活,功能强大,应用广泛的日志工具。

优点

  • 可以控制级别信息输出
  • 可以控制信息输出的目的地
  • 可以控制信息输出的格式

以上都只需要更改log4j的配置文件就可以对日志信息输出进行相关的控制,不需要对源码内容进行修改。

Log4j的组件

这里写图片描述

  • 日志器
    在源代码中使用,提供了多种方法,用于输出程序中的调试、警告、错误等信息。
  • 输出器
    在配置文件中配置,提供了多种Appender实现类,可以决定日志的输出位置,常见的有文件输出、控制台输出等。
  • 布局器
    在配置文件中配置,可以决定日志输出的格式,后面详细介绍。

在eclipse中搭建Log4j环境

  • 创建一个Web项目
    这里写图片描述
  • 在项目中导入log4j包
    先下载log4j的jar包,然后在工程中build path->add External JARs->选择下载的jar,也可以将下载的jar包复制进项目下->add JARS 。如果是maven项目,可以直接在porm.xml文件中写入log4j的依赖。
  • 在项目中添加log4j.properties配置文件。
  • 在代码中使用Logger组件写相关的日志消息

    package com.hnust.demo;
    import org.apache.log4j.Logger;
    public class Log4jDemo {
    //获取logger日志器
    static Logger logger=Logger.getLogger(Log4jDemo.class);
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        logger.debug("调试信息");
        logger.info("普通信息");
        logger.warn("警告信息");
        logger.error("错误信息");
        logger.fatal("致命信息");
      }
    }
    

    以上logger使用的五个方法从debug到fatal代表日志信息的从低到高的级别。后续再配置文件中填写级别时,只有与选择的级别相同和比选择的级别高的信息才会输出。

  • 根据需求在log4j.properties文件中配置Log4j的Logger,Appender,Layout组件。

    根日志器配置格式
    log4j.rootLogger=[level],appenderName1,appenderName2…..
    level是指输出日志信息的级别,然后可以指定若干个Appender输出器名。

    Appender配置格式
    log4j.appender.[AppenderName]=org.apache.log4j.[AppenderType]
    appenderName是自定义的Appender输出器名
    AppenderType是指Appender输出器类型,以下是可供使用的输出器类型。

    名称描述
    AsyncAppender使用一个单独线程记录日志,实现异步处理日志事件。
    CassandraAppender将日志信息输出到一个Apache的Cassandra数据库
    ConsoleAppender将日志信息输出到控制台
    FailoverAppender包含其他appenders,按顺序尝试,直至成功或结尾
    FileAppender一个OutputStreamAppender,将日志输出到文件
    FlumeAppender将日志输出到Apache Flume系统
    JDBCAppender将日志通过JDBC输出到关系型数据库
    JMS Appender将日志输出到JMS(Java Message Service)
    JPAAppender将日志输出到JPA框架
    HttpAppender通过HTTP输出日志
    KafkaAppender将日志输出到Apache Kafka
    MemoryMappedFileAppender将日志输出到一块文件关联的内存
    NoSQLAppender将日志输出到NoSQL数据库,如MongoDB
    OutputStreamAppender将日志输出到一个OutputStream
    RandomAccessFileAppender性能比FileAppender高20%~200%的文件输出Appender
    RewriteAppender允许对日志信息进行加工
    RollingFileAppender按log文件最大长度限度生成新文件
    RollingRandomAccessFA添加了缓存的RollingFileAppender
    RoutingAppender将日志事件分类,按条件分配给子appender
    SMTPAppender将日志输出到邮件
    SocketAppender将日志输出到一个Socket
    SyslogAppender是一个SocketAppender,将日志输出到远程系统日志
    ZeroMQ/JeroMQ Appender使用JeroMQ库将日志输出到ZeroMQ终端

    Layout配置格式:
    log4j.appender.[AppenderName].layout=org.apache.log4j.[LayoutType]
    LayoutType是指Layout布局器类型,以下是布局器的类型

    类型功能
    PatternLayout根据指定的转换模式格式化日志输出
    HTMLLayout格式化日志输出为HTML表格
    XMLLayout格式化日志输出为XML文件
    SimpleLayout以一种非常简单的方式格式化日志输出
    TTCCLayout包含日志产生的时间、线程、类别等信息

log4j使用效果

  • 使用最简单的log4j配置运行效果如下
    log4.properties配置文件内容
#根日志器定义
log4j.rootLogger=info,myconsole

#Appender输出器配置
log4j.appender.myconsole=org.apache.log4j.ConsoleAppender

#Layout布局器配置
log4j.appender.myconsole.layout=org.apache.log4j.SimpleLayout

运行结果如下:
运行效果图

  • 使用多种Appender和多种格式输出
    log4.properties配置文件内容
#根日志器定义
log4j.rootLogger=warn,myconsole,myfile

#Appender输出器配置
#Appender1
log4j.appender.myconsole=org.apache.log4j.ConsoleAppender
#Appender2
log4j.appender.myfile=org.apache.log4j.FileAppender
log4j.appender.myfile.File=D:\log4.txt

#Layout布局器配置
#Layout1
log4j.appender.myconsole.layout=org.apache.log4j.SimpleLayout
#Layout2
log4j.appender.myfile.layout=org.apache.log4j.PatternLayout
log4j.appender.myfile.layout.ConversionPattern=%d{HH:mm:ss} %c-%M-%m%n

log4j.appender.myfile.layout.ConversionPattern后面的是一个类似于正则表达式的式子,可以根据自己需求规范化输出的格式。
常用参数如下:


#%c 输出所属的类目,通常就是所在类的全名 
#%C 输出Logger所在类的名称,通常就是所在类的全名 
#%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},%d{ABSOLUTE},%d{DATE}
#%F 输出所在类的类名称,只有类名。
#%l 输出语句所在的行数,包括类名+方法名+文件名+行数
#%L 输出语句所在的行数,只输出数字
#%m 输出代码中指定的讯息,如log(message)中的message
#%M 输出方法名
#%p 输出日志级别,即DEBUG,INFO,WARN,ERROR,FATAL
#%r 输出自应用启动到输出该log信息耗费的毫秒数
#%t 输出产生该日志事件的线程名
#%n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
#%% 用来输出百分号“%”

运行结果:
(文件名和路径log4j.appender.myfile.File=D:log4.txt)
这里写图片描述

总结

本文介绍了Log4j的入门使用,具体运用在大型项目中还需要后续慢慢积累学习,由于它的灵活性和使用范围之广,需要查找Log4j相关文档学习。

最后

以上就是自信野狼为你收集整理的Log4j日志工具使用的全部内容,希望文章能够帮你解决Log4j日志工具使用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(88)

评论列表共有 0 条评论

立即
投稿
返回
顶部