`
a25765339
  • 浏览: 60956 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【将不同级别日志分别输出到文件】log4j配置

阅读更多
源代码
     public boolean isAsSevereAsThreshold(Priority priority)  
      {  
          return threshold == null || priority.isGreaterOrEqual(threshold);  
      }  



重写
import org.apache.log4j.DailyRollingFileAppender;
import org.apache.log4j.Priority;

public class LogAppender extends DailyRollingFileAppender {
	@Override
	public boolean isAsSevereAsThreshold(Priority priority) {
		// 只判断是否相等,不判断优先级
		return this.getThreshold().equals(priority);
	}

}



public class Test {
	static Logger log = Logger.getLogger(Test.class);

	public static void main(String[] args) throws Exception {
		try {
			throw new Exception("抛出异常测试");
		} catch (Exception e) {
			log.info(e.getMessage(), e);
		}
	}
}

log4j.rootLogger=debug,console,A1,A2,A3
#输出到控制台
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern =[%-5p] [%d{yyyy-MM-dd HH:mm:ss}] %l %m%n

#输出log.info日志 按照日期分割文件
log4j.logger.info=A1
log4j.appender.A1=com.log.LogAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%-5p] [%d{yyyy-MM-dd HH:mm:ss}] %l %m%n
log4j.appender.A1.datePattern='.'yyyy-MM-dd
log4j.appender.A1.Threshold = info
log4j.appender.A1.append=true
log4j.appender.A1.File=f:/tomcat.log

#输出log.debug日志 按照日期分割文件
log4j.logger.debug=A2
log4j.appender.A2=com.log.LogAppender
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%-5p] [%d{yyyy-MM-dd HH:mm:ss}] %l %m%n
log4j.appender.A2.datePattern='.'yyyy-MM-dd
log4j.appender.A2.Threshold = debug
log4j.appender.A2.append=true
log4j.appender.A2.File=f:/tomcatDebug.log

#输出log.error日志 按照文件大小分割日志,最多10个日志
#ConversionPattern会打印出catch语句块儿中,抛出异常的行号
log4j.logger.error=A3
log4j.appender.A3=org.apache.log4j.RollingFileAppender
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss} %p %c (%F\:%L) \: %m%n
log4j.appender.A3.Threshold = ERROR
log4j.appender.A3.append=true
log4j.appender.A3.File=f:/tomcatError.log
log4j.appender.A3.MaxFileSize=100KB
log4j.appender.A3.MaxBackupIndex=10





log4j是apache基金会的一个项目,日志记录器(Logger)是日志处理的核心组件,log4j具有7种级别(Level).
DEBUG Level: 指出细粒度信息事件对调试应用程序是非常有帮助的,就是输出debug的信息.
INFO level:  表明消息在粗粒度级别上突出强调应用程序的运行过程,就是输出提示信息.
WARN level:  表明会出现潜在错误的情形,就是显示警告信息.
ERROR level: 指出虽然发生错误事件,但仍然不影响系统的继续运行.就是显示错误信息.
FATAL level: 指出每个严重的错误事件将会导致应用程序的退出.
ALL level:   是最低等级的,用于打开所有日志记录.
OFF level:   是最高等级的,用于关闭所有日志记录.

Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。

比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少。

如果设置级别为INFO,则优先级高于等于INFO级别(如:INFO、WARN、ERROR)的日志信息将可以被输出,小于该级别的如DEBUG将不会被输出。

------------------------------------------

参数都以%开始后面不同的参数代表不同的格式化信息(参数按字母表顺序列出):

%p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
%d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%r: 输出自应用启动到输出该log信息耗费的毫秒数
%t: 输出产生该日志事件的线程名
%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
%%: 输出一个"%"字符
%F: 输出日志消息产生时所在的文件名称
%L: 输出代码中的行号
%n: 输出一个回车换行符,Windows平台为"/r/n",Unix平台为"/n"输出日志信息换行
%c:输出所属类的全名,可在修改为 %d{Num} ,Num类名输出的围  如:"org.apache.elathen.ClassName",%C{2}将输出elathen.ClassName
%m:输出代码指定信息,如info(“message”),输出message
%r:输出从启动到显示该log信息所耗费的毫秒数
%t:输出产生该日志事件的线程名
可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:
1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。
2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。
3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。
4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边交远销出的字符截掉。


如何修改tomcat控制台日志文件输出路径和文件名?
修改tomcat/bin/catalina.sh文件
if [ -z "$CATALINA_OUT" ] ; then
  #CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
  CATALINA_OUT=/data/logs/tomcat/catalinaYourName.out
fi

分享到:
评论

相关推荐

    log4j2在项目中的配置,对不同级别的日志进行不同文件的存储

    log4j2在项目中的配置,对不同级别的日志进行不同文件的存储

    log4j 配置文档(记录日志)

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...

    log4j2的配置案例,可直接使用

    配置了三个日志输出器,分别是控制台输出器“Console”以及三个文件输出器“debug_appender”、“info_appender”和“error_appender”。 控制台输出器只会输出级别为“info”及以上的日志信息,输出格式为“[%-5...

    Log4j日志管理系统简单使用说明

     禁用与使用日志请求只是Log4j其中的一个小小的地方,Log4j日志系统允许把日志输出到不同的地方,如控制台(Console)、文件(Files)、根据天数或者文件大小产生新的文件、以流的形式发送到其它地方等等。...

    深入学习log4j

    Loggers组件的主要功能是提供相应API,根据不同配置的loggers将不同级别的log输入到控制台或文件,类似于java中经常用到的System.out.println,但是log4j封装后的loggers组件能够输出更丰富的信息,包括时间,线程,...

    jjava日志文件log4j

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...

    log4j_properties配置详解

    %d{ABSOLUTE} %5p %c{ 1}:%L - %m%n### 输出到日志文件 ###log4j.appender.D =org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File =logs/log.loglog4j.appender.D.Append =truelog4j.appender.D....

    java log4j配置大全

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...

    使用Log4j进行日志操作

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...

    log4j相关jar

    Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过...

    log4j日志文件加安装步骤方法.rar

    Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过...

    官网原版log4j

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...

    linux基于Log4j应用部署日志级别调整.doc

    基于Apache开源项目Log4j的Web应用,Linux部署...可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地、日志信息的输出格式log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。

    log4J-1.2.17.zip

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出...

    org.apache.log4j

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...

    Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等

    Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件log4j.properties(键=值)。下面将介绍使用log4j.properties文件作为配置文件的方法:

    Log4j1.2.16官方文档和jar包

     Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出...

    保证看完就用log4j

    #配置llg 这个日志输出到文件 log4j.appender.llg=org.apache.log4j.RollingFileAppender #文件位置 #配置llg这个日志文件的位置 log4j.appender.llg.File=f:/llg/log.log #挂上 #。。。没想机密,都配置好了,还要...

    Log4J详细文档.doc

    Log4J(Log for java)是Apache的一个开放源代码项目,它是一个日志操作包,通过使用Log4J,可以指定日志信息输出的目的地,如控制台、文件、CUI组件、NT的事件记录器;还可以控制每一条日志输出格式。此外,通过...

Global site tag (gtag.js) - Google Analytics