log4j 自定义输出不同文件

log4j 的强大功能无可置疑,但实际应用中免不了遇到某个功能需要输出独立的日志文件的情况,怎样才能把所需的内容从原有日志中分离,形成单独的日志文件呢?其实只要在现有的log4j 基础上稍加配置即可轻松实现这一功能。

  先看一个常见的log4j.properties 文件,它是在控制台和myweb.log 文件中记录日志:

log4j.rootLogger=DEBUG, stdout, logfile

log4j.category.org.springframework=ERROR

log4j.category.org.apache=INFO

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.logfile=org.apache.log4j.RollingFileAppender

log4j.appender.logfile.File=${myweb.root}/WEB-INF/log/myweb.log

log4j.appender.logfile.MaxFileSize=512KB

log4j.appender.logfile.MaxBackupIndex=5

log4j.appender.logfile.layout=org.apache.log4j.PatternLayout

log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

  

如果想对不同的类输出不同的文件( 以cn.com.Test 为例) ,先要在Test.java 中定义:

private static Log logger = LogFactory.getLog(Test.class );

  然后在log4j.properties 中加入:

log4j.logger.cn.com.Test = DEBUG, test

log4j.appender.test =org.apache.log4j.FileAppender

log4j.appender.test .File=${myweb.root}/WEB-INF/log/test.log

log4j.appender.test .layout=org.apache.log4j.PatternLayout

log4j.appender.test .layout.ConversionPattern=%d %p [%c] - %m%n

  也就是让cn.com.Test 中的logger 使用log4j.appender.test 所做的配置。

  但是,如果在同一类中需要输出多个日志文件呢?其实道理是一样的,先在Test.java 中定义:

private static Log logger1 = LogFactory.getLog("myTest1 ");

private static Log logger2 = LogFactory.getLog("myTest2 ");

  然后在log4j.properties 中加入:

log4j.logger.myTest1 = DEBUG, test1

log4j.appender.test1 =org.apache.log4j.FileAppender

log4j.appender.test1 .File=${myweb.root}/WEB-INF/log/test1.log

log4j.appender.test1 .layout=org.apache.log4j.PatternLayout

log4j.appender.test1 .layout.ConversionPattern=%d %p [%c] - %m%n

  

log4j.logger.myTest2 = DEBUG, test2

log4j.appender.test2 =org.apache.log4j.FileAppender

log4j.appender.test2 .File=${myweb.root}/WEB-INF/log/test2.log

log4j.appender.test2 .layout=org.apache.log4j.PatternLayout

log4j.appender.test2 .layout.ConversionPattern=%d %p [%c] - %m%n

  也就是在用logger 时给它一个自定义的名字( 如这里的"myTest1 ") ,然后在log4j.properties 中做出相应配置即可。别忘了不同日志要使用不同的logger( 如输出到test1.log 的要用logger1 .info("abc")) 。

  还有一个问题,就是这些自定义的日志默认是同时输出到log4j.rootLogger 所配置的日志中的,如何能只让它们输出到自己指定的日志中呢?别急,这里有个开关:

log4j.additivity .myTest1 = false

  它用来设置是否同时输出到log4j.rootLogger 所配置的日志中,设为false 就不会输出到其它地方啦!注意这里的"myTest1 " 是你在程序中给logger 起的那个自定义的名字!

如果你说,我只是不想同时输出这个日志到log4j.rootLogger 所配置的logfile 中,stdout 里我还想同时输出呢!那也好办,把你的log4j.logger.myTest1 = DEBUG, test1 改为下式就OK 啦!

log4j.logger.myTest1 =DEBUG, test1, stdout

常规波束形成——时域波束形成、频域波束形成 本文介绍了波束成形,包括时域波束成形和频域波束成形,并解释了在实现过程可能存在疑惑的相位补偿。 阅读详情

相关推荐

告别绕线!用Altium Designer从零设计一个PCB平面变压器(附3D模型)

本文详细介绍了如何使用Altium Designer从零设计一个PCB平面变压器,包括磁芯选型、电气参数计算、PCB设计实战技巧以及3D验证与生产输出。通过将绕组直接集成到PCB层中,配合嵌入式磁芯,实现了小型化、高功率密度的电源设计,适用于中低电流、高频应用场景。附3D模型,帮助读者快速掌握这一创新设计流程。

weixin_33716154的博客 445

log4j输出多个自定义日志文件

  log4j的强大功能无可置疑,但实际应用中免不了遇到某个功能需要输出独立的日志文件的情况,怎样才能把所需的内容从原有日志中分离,形成单独的日志文件呢?其实只要在现有的log4j基础上稍加配置即可轻松实现这一功能。  先看一个常见的log4j.properties文件,它是在控制台和myweb.log文件中记录日志:log4j.rootLogger=DEBUG, stdout, lo

janestone的专栏 2万+

手把手教你用MOS管设计双电源自动切换电路(附零压降方案)

本文详细介绍了使用MOS管设计双电源自动切换电路的完整方案,包括基础电路拓扑、零压降优化设计及实战调试技巧。针对外接电源与电池供电的无缝切换需求,提供低损耗MOS管选型建议和性能实测数据,帮助工程师解决传统二极管方案的压降与漏电问题。

h0i1j2k3l的博客 1454

log4j输出多个自定义日志文件,动态配置路径

1.    log4j输出多个自定义日志文件     log4j的强大功能无可置疑,但实际应用中免不了遇到某个功能需要输出独立的日志文件的情况,怎样才能把所需的内容从原有日志中分离,形成单独的日志文件呢?其实只要在现有的log4j基础上稍加配置即可轻松实现这一功能。     先看一个常见的log4j.properties文件,它是在控制台和myweb.log文件中记录日志:   ...

heishen51的专栏 621

逆变器并联--下垂控制引入虚拟阻抗

说明传统下垂控制的缺点、分析虚拟阻抗的原理和实现方法

weixin_58670090的博客 1万+

【STM32G474实战】RS485通信的DMA优化策略与性能对比

本文深入探讨了在STM32G474微控制器上优化RS485通信的DMA策略。通过对比轮询、中断和DMA三种数据传输方式的代码实现与性能,揭示了DMA在解放CPU、降低占用率方面的巨大优势。文章提供了详细的DMA配置指南、高级应用技巧(如结合空闲中断)以及一个高可靠通信框架的实战思路,旨在帮助开发者构建高效、实时的工业控制系统。

weixin_29268331的博客 304

log4j日志输出到多个文件

log4j.rootLogger=INFO,console,logfile log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=[%x/%d{MM-dd HH:mm:ss}][%t][%-3p] %C{1}.%M(%L): %m%n

1193

RV1126B SDK移植实战:从DDR配置到USB烧写全解析

本文详细解析了RV1126B SDK移植的核心实战流程,重点攻克了DDR初始化失败与USB烧写两大难题。文章从理解启动流程入手,提供了DDR配置错误的排查步骤、SDK编译配置要点,并深入讲解了USB烧写的完整操作与常见问题解决方案,旨在帮助开发者高效完成系统移植与稳定运行。

weixin_29164497的博客 542

log4j配置输出到多个日志文件

通常我们项目里,有一些重要的日志想单独的输出到指定的文件,而不是全总输出到系统的日志文件里,那么我们log4j为我们提供了这样的功能,下面我们来一步一步看是怎么做的。这里以property的配置方式写,xml方式类似,想了解的,可以看官方文档。

prefer_n的专栏 6841

SAP S4 HANA:按单生产(MTO)场景中的COGS分割

本文介绍了SAP S/4HANA中提供的各种选项,以在销售订单/商品是按订单生产(以下称为MTO)生产流程中的成本对象时,在基于帐户的COPA环境中报告COGS分割信息。

adam915的博客 1192

ABAP Cloud 开发教程的文章目录

本教程涵盖 ABAP 云端 Client 处理、多租户架构、ABAP Cloud开发、动态编程优化、SQL语法改进等技术主题。最新版本1.0.0(更新至2025-12-12),包含197篇文章,重点文章包括《ABAP Client Handling与隔离机制》《ABAP Platform 2021泛型编程》《SAP BTP ABAP多租户应用开发》等,为开发者提供从基础到进阶的实战指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1816

log4j输出多个自定义日志文件、log4j 多进程不同日志文件

最近在用多个线程走多个任务,但是日志用一个文件总有的线程输出不了。  其他博客找的解决方法:  log4j的强大功能无可置疑,但实际应用中免不了遇到某个功能需要输出独立的日志文件的情况,怎样才能把所需的内容从原有日志中分离,形成单独的日志文件呢?其实只要在现有的log4j基础上稍加配置即可轻松实现这一功能。  1)先看一个常见的log4j.properties文件,它是在控制台和daily.

胡歌的专栏 1304

传统(经典)粒子群算法(PSO)解决单目标优化问题

智能算法:粒子群算法(particle swarm optimizer)—PSO %原理:(1)种群初始化–N(种群数)–D(个体数)–x(i)(粒子位置)–v(i)(粒子速度) % (2)计算每个粒子的适应度值–而适应度值需要选择适应度函数 % (3)对于每个粒子,使用它的适应度值fit[i]和个体的极值pbest(i)进行比较,如果fit[i]>pbest(i),则pbest(i)=fit[i] % (4)同理,对每个粒子用它的适应值与全局极值进行比较,如果比它大,则

weixin_51631044的博客 1295

Log4J日志配置详解和自定义log4j日志级别及输出日志到不同文件实现方法

一、Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。 1、Loggers Loggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、

Cactus 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Log4j按级别输出日志到不同文件配置分析

关于LOG4J 按照级别输出日志,并按照级别输出到不同文件中的说法有很多, 网上贴的最多的log4j.properties的设置是这样的 [java] view plaincopy log4j.rootLogger=info,stdout,info,debug,error   log4j.appender.stdout=org.apache.log4j

dos_186的博客 433

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

log4j2 自定义日志输出文件

目的 最近用到一个项目,需要在一个类中,将日志区分打印到不同的日志文件中 比如同一个地方打印两条日志“receive message from port[123]”,"receive message from port[456]" 这两条日志的内容一样的,只不过里面的参数port不一样。 工程实现 在这里,我们使用gradle工程来实现,总体目录如下 工程的gradle.build...

a_c_c_a的专栏 5363

log4j配置指定类输出到指定的日志文件

log4j配置指定类输出到指定的日志文件log4j.properties 配置DailyRollingFileAppender类MyDailyRollingFileAppender类示例:在实际业务类中使用日志示例 log4j.properties 配置 #/app/weblogs/xxgx/xxgx.log log.path=/app/weblogs/xxgx ### direct log m...

学无止境 1万+

Log4j 不同的包输出到不同的文件

Log4j 不同的包输出到不同的文件 配置多个logger

2383
上一篇: 对@import url()做一下总结
下一篇: Jackson High-performance JSON processor
programloverjack
博客等级 码龄17年 5粉丝 252原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值