使用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. 访问标 ...
随机推荐
- restTemplate源码解析(二)restTemplate的核心逻辑
所有文章 https://www.cnblogs.com/lay2017/p/11740855.html 正文 上一篇文章中,我们构造了一个RestTemplate的Bean实例对象.本文将主要了解一 ...
- 关于js异步的一些知识点
1,什么是单线程,和异步有什么关系 单线程-只有一个线程,只能做一件事 单线程的原因:避免DOM 渲染的冲突 浏览器需要渲染DOM JS 可以修改DOM 结构 JS 执行的时候,浏览器DOM 渲染会暂 ...
- epoll、mysql概念及简单操作
epoll 程序阻塞的过程 假设我们目前运行了三个进程A B C ,如果他们都在处于运行态,那就会被加到一个运行队列中 进程A正在运行socket程序 在linux中有句话,万物皆文件,socket对 ...
- 【转载】salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)
salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL) salesforce中对于数据库操作和JAVA等语言对于数据库操作是有一定区别的.salesfo ...
- go语言interface学习
Go 中的 interface 所具有的最基本的功能:作为一种 abstract type,实现各种 concrete type 的行为统一. interface是一种类型.只有是实例化后才能调用in ...
- MacOS文本编辑无法打不开GB18030
不要直接双击打开 而是 打开sublime text或者其他文本编辑后,从软件里面的open选型打开
- springboot集成Apollo分布式配置
安装Apollo服务 1.安装mysql 地址:https://www.cnblogs.com/xuaa/p/10782352.html 2.下载Apollo源码到本地 地址:https://gith ...
- Reverse链表
之前学习了关于reverse数组相关的东东(http://www.cnblogs.com/webor2006/p/6727419.html),这次再来对链表进行reverse一下,在面试中也很容易被问 ...
- 标准库类型之string
上几篇中已经实现了一个简单版的String字符串类,但是实际开发中不用我们自己实现了,学习Java的也知道有一个系统现成的用,当然强大的C++也不例外,下面就来学习一下系统定义的string是怎么用的 ...
- Mysql+keepalived
测试环境 192.168.2.201 master slave 192.168.2.202 master slave 配置流程:安装MySQL->优化系统->优化配置my.cnf-> ...