`

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

    博客分类:
  • java
阅读更多

logger是category的子类,category现在已经不提倡使用。但是现在部分jar依然使用的category,所以需要使用log4j.category.org.mybatis控制,例如:org.mybatis,org.apache

-----------下面为转载----------------------

 常见的log4j.properties文件,它是在控制台和logger.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=logger.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

分享到:
评论

相关推荐

    log4j输出多个自定义路径的日志文件小例子

    本工程主要实现log4j输出多个自定义路径的日志文件,为方便大家使用

    LOG4CPP多个日志文件

    LOG4CPP 支持多个文件,DEBUG/NOTICE/WARNING/ERROR/CRITICAL分别打到不同的文件

    log4j多文件输出打印

    log4j、日志输出、自定义日志、多文件输出。

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

    打印日志的在程序中是必不可少的,如果需要将不同的日志打印到不同的地方,则需要定义不同的Appender,然后定义每一个Appender的日志级别、打印形式和日志的输出路径,下面看一个示例吧

    log4j 日志服务器

    log4j 日志服务器 一个系统可能有多个子系统组成,这些子系统都有自己的日志,并且运行在不同的操作系统和主机上,收集这些日志对运营人员来说也比较困难。 因此决定在平台中采用日志服务器来做到集中日志管理,平台...

    log4j-socketappender:自定义 Log4J 的 SocketAppender,在日志服务器和调用事件的各种客户端之间进行通信

    自定义 Log4J 的 SocketAppender,在日志服务器和调用事件的各种客户端之间进行通信。 如何使用:AsynchListener - 通知程序 - 当日志服务器在特定端口和机器上准备就绪时,通知日志客户端是否准备好调用通知。 ...

    log4j使用实战

    当前日志放在log4j.appender.File.File=${user.dir}/logs/hmiservice.log对应的命名文件中, 过了时间将原日志文件命名为原文件名后加上log4j.appender.File.DatePattern='.'yyyy-MM-dd-HH对应格式的日期, 注意不能...

    zlog---比log4c更牛的c语言日志库

    可以灵活配置日志输出的格式,类似于log4j的pattern layout 纲目分类模型,比log4j系列的继承模型更加清晰 多种输出,包括动态文件、静态文件、stdout、stderr、syslog 可以在运行时动态刷新配置,只需要调用函数...

    Javascript日志输出管理工具Log4Jse.zip

    Log4Jse是一个非常简洁、可定制的Javascript日志输出管理工具,类似Log4J,但是比它简单很多,可以实现自定义日志输出级别、自定义日志输出方式等功能。 示例代码: // Usage: var mylog = Logger.get("app"); mylog...

    文本切割器,用于大文本(.log)切割

    考虑编程实现,利用Python编程语言可以快捷地完成将大文本文件分割成多个小文件,并且拥有非常快的速度. 使用教程,仅需把需要切割的.log文件放入"需分割文件",然后点击data.exe运行即可,(固定值以100w行为一次切割,...

    Log4net 日志查看器

    实时查看log4net输出的日志,支持如下功能: 支持同时收集多个APP的日志,并且提供筛选功能 支持按照线程ID进行筛选日志 支持通过日志名称筛选日志 支持一键清空显示区域的所有日志 支持自动滚动或者禁止自动滚动 ...

    LogReader:Log4j日志文件的日志读取器

    可以在使用标准log4j模式的设置中定义多个自定义布局模式(例如,%d {yyyy-dd-MM HH:mm:SS,SSS}%c%p%m)现在,可以按选定的属性或按两次单击左侧TreeTable中的一个项目。 可以通过运行“ mvn clean package...

    Nginx自定义访问日志的配置方式

    前言 Nginx日志主要分为两种:访问日志和错误...就我们普通的JAVAWEB项目来说,重要的日志一般输出并存放在Tomcat的log目录下,并区分日志输出级别。用于区分,查阅并统计相关日志信息。 当然,这不是重点,重点是很多

    自定义日志脱敏组件,简单3 步完成 Spring Boot 的日志脱敏

    本组件基于logback+slf4j,暂不支持log4j,如需解决log4j的日志,可以参照本组件的思想去完成。 本组件支持的脱敏数据类型:八大基本类型及其包装类型、String类型、Map、List、JSON字符串、项目中的POJO对象。 注...

    logtxt-命名行记录日志

    logtxt.exe 为命令行记录日志软件. ...logtxt.exe.config 配置文件内可以更改自定义内容. 软件运行需要.net 4.6.1或以上 项目代码地址: https://github.com/NianJiTao/nianjitao/tree/master/NJT/LogTxt

    logging:基于Java的log4j库的设计,可在Ruby程序中使用的灵活日志记录库

    它具有分层的日志记录系统,自定义级别名称,每个日志事件多个输出目标,自定义格式等。 安装 gem install logging 例子 本示例将记录器配置为以类似于核心ruby Logger类的格式输出消息。 仅记录警告或更高级别的...

    spdlog-0.14.0.zip

    spdlog 是一个快速的 C++ 日志库,只包含头文件,兼容 C++11。 特性: 非常快 只包含头文件 无需依赖第三方库 支持跨平台 - Linux / Windows on 32/64 bits 支持多线程 可对日志文件进行循环输出 可...

    基于SuperSocket的中央日志服务器.rar

    这个 log4net 配置定义了多个 loggers 和 appenders 将所有日志分类输出到 "Logs"目录下的四个文件: info.log debug.log err.log perf.log 你也可以根据你自己的需要定制这个配置文件。 由于SuperSocket项目...

    SLF4M:Matlab的简单日志记录框架,建立在SLF4J和Log4j之上-matlab开发

    SLF4M是用于Matlab的简单但灵活的日志记录框架,建立在SLF4J和Apache Log4j的基础上。 您可以使用它从Matlab脚本和程序中进行可在运行时配置的日志记录。 与在内部注释和注释掉fprintf()语句相比,这可以提供更多...

    崩溃日志上传框架LogReport.zip

    默认不加密日志按天保存目前崩溃日志和Log信息是按天保存,你可以继承接口来实现更多的保存样式携带设备与OS信息在创建日志的时候,会一并记录OS版本号,App版本,手机型号等信息,方便还原崩溃自定义日志上传的时机...

Global site tag (gtag.js) - Google Analytics