关于log4j

2023-11-03

log4j

  在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包-Log4j。
  官方站点:http://logging.apache.org/log4j/
  Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
  此外,通过Log4j其他语言接口,您可以在C、C++、.Net、PL/SQL程序中使用Log4j,其语法和用法与在Java程序中一样,使得多语言分布式系统得到一个统一一致的日志组件模块。而且,通过使用各种第三方扩展,您可以很方便地将Log4j集成到J2EE、JINI甚至是SNMP应用中。
  说明:下面分为三部分,
  第一部分讲解如何配置log4j;
  第二部分为对log4j.properties配置文件中的各个属性的讲解;
  第三部分为对log4j的详细讲解。
  如果只想配置上log4j,那么只需要看前两个部分就可以,如果想对log4j深入了解,则还需看第三部分。
   一、Log4j配置
   第一步:加入log4j-1.2.8.jar到lib下。
   第二步:在CLASSPATH下建立log4j.properties。内容如下:
  1 log4j.rootCategory=INFO, stdout , R
  2
  3 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  4 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  5 log4j.appender.stdout.layout.ConversionPattern=[QC] %p [%t] %C.%M(%L) | %m%n
  6
  7 log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
  8 log4j.appender.R.File=D://Tomcat 5.5//logs//qc.log
  9 log4j.appender.R.layout=org.apache.log4j.PatternLayout
  10 log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n
  11
  12 log4j.logger.com.neusoft=DEBUG
  13 log4j.logger.com.opensymphony.oscache=ERROR
  14 log4j.logger.net.sf.navigator=ERROR
  15 log4j.logger.org.apache.commons=ERROR
  16 log4j.logger.org.apache.struts=WARN
  17 log4j.logger.org.displaytag=ERROR
  18 log4j.logger.org.springframework=DEBUG
  19 log4j.logger.com.ibatis.db=WARN
  20 log4j.logger.org.apache.velocity=FATAL
  21
  22 log4j.logger.com.canoo.webtest=WARN
  23
  24 log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN
  25 log4j.logger.org.hibernate=DEBUG
  26 log4j.logger.org.logicalcobwebs=WARN
   第三步:相应的修改其中属性,修改之前就必须知道这些都是干什么的,在第二部分讲解。
   第四步:在要输出日志的类中加入相关语句:
  定义属性:protected final Log log = LogFactory.getLog(getClass());
  在相应的方法中:
  if (log.isDebugEnabled()){
  log.debug(“System …..”);
  }
   二、Log4j说明
   1 log4j.rootCategory=INFO, stdout , R
  此句为将等级为INFO的日志信息输出到stdout和R这两个目的地,stdout和R的定义在下面的代码,可以任意起名。等级可分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL,如果配置OFF则不打出任何信息,如果配置为INFO这样只显示INFO, WARN, ERROR的log信息,而DEBUG信息不会被显示,具体讲解可参照第三部分定义配置文件中的logger。
   3 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  此句为定义名为stdout的输出端是哪种类型,可以是
  org.apache.log4j.ConsoleAppender(控制台),
  org.apache.log4j.FileAppender(文件),
  org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
  org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
  org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
  具体讲解可参照第三部分定义配置文件中的Appender。
   4 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  此句为定义名为stdout的输出端的layout是哪种类型,可以是
  org.apache.log4j.HTMLLayout(以HTML表格形式布局),
  org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
  org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
  org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
  具体讲解可参照第三部分定义配置文件中的Layout。
   5 log4j.appender.stdout.layout.ConversionPattern= [QC] %p [%t] %C.%M(%L) | %m%n
  如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下:
  %m 输出代码中指定的消息
  %p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
  %r 输出自应用启动到输出该log信息耗费的毫秒数
  %c 输出所属的类目,通常就是所在类的全名
  %t 输出产生该日志事件的线程名
  %n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
  %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
  %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
  [QC]是log信息的开头,可以为任意字符,一般为项目简称。
  输出的信息
  [TS] DEBUG [main] AbstractBeanFactory.getBean(189) | Returning cached instance of singleton bean 'MyAutoProxy'
  具体讲解可参照第三部分定义配置文件中的格式化日志信息。
   7 log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
  此句与第3行一样。定义名为R的输出端的类型为每天产生一个日志文件。
   8 log4j.appender.R.File=D://Tomcat 5.5//logs//qc.log
  此句为定义名为R的输出端的文件名为D://Tomcat 5.5//logs//qc.log可以自行修改。
   9 log4j.appender.R.layout=org.apache.log4j.PatternLayout
  与第4行相同。
   10 log4j.appender.R.layout.ConversionPattern=%d-[TS] %p %t %c - %m%n
  与第5行相同。
   12 log4j.logger.com. neusoft =DEBUG
  指定com.neusoft包下的所有类的等级为DEBUG。
  可以把com.neusoft改为自己项目所用的包名。
   13 log4j.logger.com.opensymphony.oscache=ERROR
   14 log4j.logger.net.sf.navigator=ERROR
  这两句是把这两个包下出现的错误的等级设为ERROR,如果项目中没有配置EHCache,则不需要这两句。
   15 log4j.logger.org.apache.commons=ERROR
   16 log4j.logger.org.apache.struts=WARN
  这两句是struts的包。
   17 log4j.logger.org.displaytag=ERROR
  这句是displaytag的包。(QC问题列表页面所用)
   18 log4j.logger.org.springframework=DEBUG
  此句为Spring的包。
   24 log4j.logger.org.hibernate.ps.PreparedStatementCache=WARN
   25 log4j.logger.org.hibernate=DEBUG
  此两句是hibernate的包。
  以上这些包的设置可根据项目的实际情况而自行定制。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于log4j 的相关文章

随机推荐

  • 解决错误“ #error “include FreeRTOS.h“ must appear in source files before “include event_groups.““例子分享

    今天来给大家分享一下 关于之前自己在学习FreeRTOS过程中遇到的一个错误提示 话不多说 我们直接来看 错误分析 首先 我们看一下错误的提示 error 35 error directive include FreeRTOS h must
  • JDBC连接MYSQL数据库

    JDBC连接数据库的要素 1 数据库URL 2 用户名 3 密码 4 Connection对象 Connection connection null PreparedStatement preparestatement null 1 读取配
  • 小程序电商商城怎么搭建?

    做电商的企业商家都会首先搭建好自己的电商商城 尤其是现在小程序盛行的时代 小程序电商商城更是做电商的企业商家的必备媒介 那么小程序电商商城怎么搭建 下面给大家说说一些流程作为参考 一 准备事项 搭建小程序电商商城 那么小程序账号是必须要有的
  • [1032]spark-3.0安装和入门

    文章目录 一 Windows安装 1 安装 2 使用 二 Linux安装 一般安装模式 下载 设置环境变量 修改配置 启动 确认启动成功 Local模式 1 安装 2 使用 yarn模式 1 安装 2 使用 3 spark的历史服务器集成y
  • MySQL左连接右表数据为Null,查询右表条件时,右表数据为Null的左表数据会被过滤的的解决方法

    未添加右表查询条件的场景 SELECT o id 左表ID u uid 右表ID u channel 右表查询条件 FROM basic order o LEFT JOIN basic user u ON o user id u uid W
  • Python办公自动化(四)

    用同样的方式处理一堆文件夹中文件 这并不难 但就是繁 所以在遇到机械式的操作时一定要记得使用Python来合理偷懒 今天我将以处理微博热搜数据来示例如何使用Python批量处理文件夹中的文件 主要将涉及 Python批量读取不同文件夹 Pa
  • Qt C++中,成员变量的声明和定义及初始化——int类型、vector容器

    核心 1 一维数组和二维数组的初始化仅可以通过push back 初始化列表除外 2 数组不初始化 可是使用append进行元素的添加 但是如果是要对以有的2 3的数组进行数据更改 就必须要初始化 vector test h class V
  • android模拟器Unexpected value from nativeGetEnabledTags: 0 问题解决方法

    在android4 2的模拟器上有一个问题 就是在运行模拟器的时候 老是会弹出Unexpected value from nativeGetEnabledTags 0提示 查询后得知是sdk的一个bug 虽然不影响使用 但是看着还是不爽 解
  • 表单嵌套表格,实现表格行内表单的校验

    随着element ui的使用 很多业务场景的实现 往往需要多个组件嵌套使用来实现 前段时间 为了实现表格中的每一行的数据进行校验的同时实现添加多个的需求 初步想法 在每一行对应属性中嵌套表单实现逐个校验 但是由于数据量大大 一行需要展示的
  • 解决Establishing SSL connection without server‘s identity verification is not recommended.

    每次从数据库中进行查询或者其他操作控制台都会出现以下警告 虽说不是error 但是很显眼 Establishing SSL connection without server s identity verification is not r
  • 03-分布式文件系统HDFS

    目录 一 HDFS简介 1 什么是HDFS 2 优缺点 2 1 优点 2 2 缺点 二 HDFS原理 1 系统架构 1 1 角色分工 1 2 设计思想 2 数据存储 2 1 文件存储 2 2 元数据存储 3 读写操作 3 1 写操作 3 2
  • 智慧城市篇

    智慧城市篇 数字孪生智慧排水管网管理平台https mp weixin qq com s ZDgmKqHRztYk2ehBDbi3AA 2022年3月1日 住房和城乡建设部印发了 十四五 住房和城乡建设科技发展规划 提出关于实现城市基础设施
  • Mybatis中的resultType和resultMap

    一 概述 MyBatis中在查询进行select映射的时候 返回类型可以用resultType 也可以用resultMap resultType是直接表示返回类型的 而resultMap则是对外部ResultMap的引用 但是resultT
  • android组件悬浮,Andorid 任意界面悬浮窗,实现悬浮窗如此简单

    特性 1 支持拖动 提供自动贴边等动画 2 内部自动进行权限申请操作 3 可自由指定要显示悬浮窗的界面 4 应用退到后台时 悬浮窗会自动隐藏 5 位置不可变的悬浮窗无需权限申请 6 位置及宽高可设置百分比值 轻松适配各分辨率 7 链式调用
  • [Python / PyTorch] debug backward()

    问题描述 在自定义Loss的中 其backward 函数不支持在PyCharm中进行断点调试 因此需要以其他方式进行断点调试 解决方案 参考 Is there a way to debug the backward method of Fu
  • SQLI-Labs(3)8-14关【布尔盲注和时间盲注】

    目录 第八关 第九关 第十关 第十一关 第十二关 第十三关 第十四关 第八关 我们用测试语句来测试是否为注入点 从上图中得知存在注入点 那么接下来就是爆列 一共有三列 接下来用union select 和报错注入都试一下发现没有回显点 那么
  • thinkPHP使用PHPExcel实现导入导出

    目录 一 使用composer安装PHPExcel 二 使用PHPExcel 1 导入Excel文件 2 导出数据 3 导出方法使用demo 效果图 一 使用composer安装PHPExcel 安装命令 composer require
  • 常见的PLC通讯协议有哪些?

    PLC 可编程逻辑控制器 通讯方式有多种 以下是一些常见的通讯方式 串口通信 使用串行接口 如RS232 RS485等 进行通信 常用于与外部设备进行简单的数据传输 以太网通信 通过以太网接口进行通信 可以实现较高的数据传输速率和远程连接
  • 键值数据库PebblesDB读后感

    键值数据库PebblesDB读后感 在LevelDB RocksDB这种分层思路上 PebblesDB提出了一种减少写放大的思路 下面学习并总结 所述以论文为基础 也有个人 观点 客观论述请看原文 虽然LSM的写放大最近被研究很多 但是就写
  • 关于log4j

    log4j 在强调可重用组件开发的今天 除了自己从头到尾开发一个可重用的日志操作类外 Apache为我们提供了一个强有力的日志操作包 Log4j 官方站点 http logging apache org log4j Log4j是Apache