使用log4j使某些java类的日志信息输出到指定日志文件中
Log4j 是 Apache 的一个开放源代码项目,通过使用 Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI 组件、甚至是套接口服务器、NT 的事件记录器、UNIX Syslog 守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
应项目需求,需要处理项目中某些java类所产生的跑批日志信息和平常操作产生的业务日志信息分开保存,故重新配置log4j.properties,使得满足要求。
1、 平常的业务日志文件有front_log.log和front_error_log.log,log4j.properties配置如下
log4j.rootLogger=DEBUG,CONSOLE,DATABASE,D,R
log4j.addivity.org.apache=false
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.layout.ConversionPattern= %d{yyyy-MM-dd HH\:mm\:ss} %5p [%c] (%L) - %m%n
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.Encoding=gbk
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
##日志信息测试按天生成,有效期最低3个月,最多4个月
log4j.appender.D = com.sinosoft.utils.CustomDailyRollingFileAppender
log4j.appender.D.File =${catalina.home}/logs/front_log #log4j.appender.D.File =/eptms/eptms/log/logs/main/front_log
log4j.appender.D.datePattern = yyyy-MM-dd'.log'
log4j.appender.D.Append = true
log4j.appender.D.Threshold = info
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern =%d{yyyy-MM-dd HH\:mm\:ss} %5p [%c] (%L) - %m%n
##错误日志文件
log4j.appender.R = com.sinosoft.utils.CustomDailyRollingFileAppender
log4j.appender.R.File =${catalina.home}/logs/front_error_log
#log4j.appender.R.File =/eptms/eptms/log/logs/main/front_error_log
log4j.appender.R.datePattern = yyyy-MM-dd'.log'
log4j.appender.R.Append = true
log4j.appender.R.Threshold = error
log4j.appender.R.layout = org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern =%d{yyyy-MM-dd HH\:mm\:ss} %5p [%c] (%L) - %m%n
在log4j.properties中日志的生成方式,我这里根据jar里的方法重写了;
具体请参考:https://blog.csdn.net/su1573/article/details/86582678
2、新增跑批日志配置,如下:
规则:保存的文件为front_batch.log
日志数量:90个
#跑批日志 log4j.logger.batch=INFO,ERROR,batchFile
log4j.addivity.batchFile=false
log4j.appender.batchFile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.batchFile.File =${catalina.home}/logs/front_batch
#log4j.appender.D.File =/eptms/eptms/log/logs/batch/front_batch
log4j.appender.batchFile.datePattern = yyyy-MM-dd'.log'
log4j.appender.batchFile.Append = true #log4j.appender.D.Threshold = info
log4j.appender.batchFile.MaxBackupIndex=90
log4j.appender.batchFile.layout = org.apache.log4j.PatternLayout
log4j.appender.batchFile.layout.ConversionPattern =%d{yyyy-MM-dd HH\:mm\:ss} %5p [%c] (%L) - %m%n
3、在具体的java类中引用
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; public class TestDemo{
//指定跑批日志
private static Log logger= LogFactory.getLog("batch");
public void test(){
logger.info("凭证生成-开始执行自动跑批任务^_^");
}
}
---------------------
作者:su1573
来源:CSDN
原文:https://blog.csdn.net/su1573/article/details/87882929
版权声明:本文为博主原创文章,转载请附上博文链接!
使用log4j使某些java类的日志信息输出到指定日志文件中的更多相关文章
- 使用log4j将不同级别的日志信息输出到不同的文件中
使用log4j.xml xml格式的配置文件可以使用filter. 例如想只把log4j的debug信息输出到debug.log.error信息输出到error.log,info信息输出到info.l ...
- Android将日志信息自动发送到指定的邮箱中 邮件的内容以附件形式发送
今日整合了网上一些大神的例子(具体看了那些大神的?这个真不好意思我忘记了.下次再整合一定给大家补上,这次也只有默默的给那几个大神说声抱歉了.)做了一个“记录android项目中的日志信息,并将日志信息 ...
- Log4J是Apache组织的开源一个开源项目,通过Log4J,可以指定日志信息输出的目的地,如console、file等。Log4J采用日志级别机制,请按照输出级别由低到高的顺序写出日志输出级别。
Log4J是Apache组织的开源一个开源项目,通过Log4J,可以指定日志信息输出的目的地,如console.file等.Log4J采用日志级别机制,请按照输出级别由低到高的顺序写出日志输出级别. ...
- log4net--帮助程序员将日志信息输出到各种目标(控制台、文件、数据库等)的工具
1. log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台.文件.数据库等)的工具. 2. Log4net的结构如下 ...
- PHP 错误与异常 笔记与总结(5)配置文件中与错误日志相关的选项 && 将错误记录到指定的文件中
[记录错误(生产环境)] php.ini: ① 开启 / 关闭 错误日志功能 log_errors = On ② 设置 log_errors 的最大字节数 log_errors_max_len = 其 ...
- Java基础面试操作题:读取该文件内容,并按照自然顺序排序后输出到 另一个文件中
package com.swift; import java.io.FileInputStream; import java.io.FileNotFoundException; import java ...
- log4j输出到指定日志文件
log4j.properties: log4j.logger.myTest=DEBUG,console,FILE log4j.appender.console=org.apache.log4j.Con ...
- hibernate中java类的成员变量类型如何映射到SQL中的数据类型变化
hibernate映射文件??.hbm.xml配置映射元素详解--Hibernate映射类型 在从Hibernate的java的成员类型映射到SQL中的数据类型,其内映射方式它满足,SQL可以自己调制 ...
- 《Java虚拟机原理图解》1.3、class文件中的访问标志、类索引、父类索引、接口索引集合
讲完了class文件中的常量池,我们就相当于克服了class文件中最麻烦的模块了.现在,我们来看一下class文件中紧接着常量池后面的几个东西:访问标志.类索引.父类索引.接口索引集合. 1. 访问标 ...
随机推荐
- multer实现图片上传
multer实现图片上传: ejs代码: <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- angular轮播图
还是直接上代码比较好 <!doctype html><html lang="en"><head> <meta charset=" ...
- 树莓派二:apt-get出错、蓝牙、汉化、输入法
用apt-get install一个软件的时候出现了一个错误: E: Encountered a section with no Package: header E: Problem with Mer ...
- Mac下安装和配置Vue项目
题记:学vue有一段时间了,终于今天下定决心每日书写一篇学习笔记.1.访问node.js官网:https://nodejs.org/en/ 下载对应安装包.2.安装完成,在终端输入 : node -v ...
- Java学习第一天之简单了解java语言及开发环境的安装
一.初步了解Java语言 Java语言是由Sun公司的James Gosling创造的一门面向对象的高级语言. 2009年4月20日,Sun公司被Oracle以总价值约为74亿美元的价格收购,Java ...
- 09_Azkaban案例实践2_Command多job工作流flow
1.Command类型多job工作流flow 1.创建有依赖关系的多个job描述:第一个job:foo.job # foo.job type=command command=echo foo 2.第二 ...
- Linux基本命令-chmod
chmod命令用来变更文件或目录的权限.在UNIX系统家族里,文件或目录权限的控制分别以读取.写入.执行3种一般权限来区分,另有3种特殊权限可供运用.用户可以使用chmod指令去变更文件 ...
- webstorm如何调试vue项目的js
webstorm如何调试vue项目的js webstormvuewebstorm调试jsjs 1.编辑调试配置,新建JavaScript调试配置,并设置要访问的url地址,如下图所示: 在URL处填写 ...
- Road to Cinema(贪心+二分)
https://www.cnblogs.com/flipped/p/6083973.html 原博客转载 http://codeforces.com/group/1EzrFFyOc0/co ...
- Oracle中查询表中数据的上次更新时间
目前找到的是以下方式,但是这种方式在表的数据量比较大的时候效率会比较慢. select to_char(scn_to_timestamp(max(ora_rowscn)),'YYYY-MM-DD HH ...