log4j学习(二)不同类的日志输出到不同的文件

目的:一个应用中有两个不同作用的后台服务,我们需要把他们的日志分开,存放到2个不同的日志文件中。

办法:需要在log4j.properties文件中配置两个不同的logger和对应的appender

log4j.logger.logger1=debug,appender1
log4j.appender.appender1=org.apache.log4j.FileAppender
log4j.appender.appender1.File=C:/Users/yang/Desktop/testprojectLog1.log
log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
log4j.logger.logger2=debug,appender2
log4j.appender.appender2=org.apache.log4j.FileAppender
log4j.appender.appender2.File=C:/Users/yang/Desktop/testprojectLog2.log
log4j.appender.appender2.layout=org.apache.log4j.TTCCLayout

这样在代码中使用

private static Logger logger1 = Logger.getLogger("logger1");
private static Logger logger2 = Logger.getLogger("logger2");

logger1.info("-------------------Hello, world!到testprojectLog1.log----------------------");
logger2.info("-------------------Hello, world!到testprojectLog2.log----------------------");

得到不同的logger1与logger2输出的日志就会到不同文件testprojectLog1.log与testprojectLog2.log中了。

时间: 2024-10-20 16:42:21

log4j学习(二)不同类的日志输出到不同的文件的相关文章

log4j学习二-log4j认识

log4j(标准日志工具)三大组件: logger appender layout 例如: ? 1 2 3 log4j.logger.myTest2=INFO,B   log4j.appender.B=org.apache.log4j.ConsoleAppender   log4j.appender.B.layout=org.apache.log4j.PatternLayout  日志级别: off---------------------------------最高等级的,用于关闭所有日志记录

(转)log4j(二)——如何控制日志信息的输出?

一:测试环境与log4j(一)——为什么要使用log4j?一样,这里不再重述 1 先看栗子再来下结论 import org.apache.log4j.*; import test.log4j.bean.Person; //by godtrue public class UseLog4j { //日志记录器 private static Logger LOGGER = LogManager.getLogger(UseLog4j.class); //循环次数 private static long

log4j学习(三)——AOP日志

上篇讲到了,通过log4j在自己计算机上生成日志文件.这篇主要是和spring的AOP整合起来,将日志作为一个切面横切到系统中. 一).相关知识: Log4j: Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个

Log4j将不同Package的日志输出到不同的文件

转自:http://www.crazyant.net/1931.html 随着项目规模的越来越大,会不断的引入新的模块,不同的模块都会打印自己的日志,最后就造成日志根本没法查看,比如我自己的项目中,就存在以下这些日志: 接收外界消息的日志.对外发送消息的日志: 后台常驻线程的处理日志: 外部接口访问的参数.返回结果等接口日志: Service访问数据库产生的SQL日志: 这其中,消息日志和后台线程的日志数据量非常庞大,如果所有日志打印在一个文件中,使用tail -f log.log文件,会发现日

log4j将日志输出到控制台,文件,邮件

1 #将日志写到文件 2 log4j.appender.file=org.apache.log4j.DailyRollingFileAppender 3 log4j.appender.file.File=e\:\\log\\zmcc.log 4 log4j.appender.file.DatePattern=yyyy-MM-dd-HH-mm'.log' 5 log4j.appender.file.layout=org.apache.log4j.PatternLayout 6 log4j.appe

将日志输出到屏幕及文件

#!/usr/bin/env python# -*- coding: utf-8 -*-import logging#创建日志对像logger=logging.getLogger("TEST-LOG")logger.setLevel(logging.ERROR) #日志级别 #创建日志输出到屏幕及设置级别ch=logging.StreamHandler()ch.setLevel(logging.DEBUG) #创建日志输出到文件及设置级别fh=logging.FileHandler(&

log4j和logback的冲突导致日志输出异常

前一阵在在项目中碰到一个日志问题.工程使用的是log4j,log4j.xml中也配置了工程日志路径和策略,并把日志级别定为warn.但不管是测试环境还是线上环境,都发现除了应用自身的日志,以及指定输出日志,工程中依赖的包输出的日志都打到了tomcat自身的日志文件中,并且debug的日志也一并输出,导致tomcat的日志文件增长非常快,没几天就把服务器空间占满.线上服务器还好,有脚本自动清理,测试环境的服务器直接宕机. 最初,以为是tomcat配置问题,找到PE检查脚本,发现跟tomcat并无直

windows下tomcat日志输出至catalina.out文件

问题 windows下的tomcat的日志只输出在控制台下,且日志文件输出只有一些基本信息.如何把所有日志都输出到catalina.out,不过有个弊端就是日志在命令行不输出了. 解决方案 需要修改两个地方: 1.修改startup.bat 把call "%EXECUTABLE%" start %CMD_LINE_ARGS%修改为call "%EXECUTABLE%" run %CMD_LINE_ARGS%. 2.修改catalina.bat 查找catalina.

log4j配置文件及java调用 每个级别输出到不同的文件2

log4j.rootLogger=debug,stdout,info,debug,error log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Threshold=DEBUG log4j.appender.stdout.Target=System.err log4j.appender.CONSOLE.ImmediateFlush=true log4j.appender.stdout.layou