为不同的 Appender 设置日志输出级别:

2024-02-29 05:58

本文主要是介绍为不同的 Appender 设置日志输出级别:,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

例子:http://blog.csdn.net/seakingwy/archive/2006/10/30/1357276.aspx

Log4J配置

2008/12/02

一.log4j

简单的说log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就

是可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。

Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。程序员经常会遇到脱离java ide环境调试程序的情况,这时大多数人会选择使用System.out.println语句输出某个变量值的方法进行调试。这样会带来一个非常麻烦的问题:一旦哪天程序员决定不要显示这些System.out.println的东西了就只能一行行的把这些垃圾语句注释掉。若哪天又需调试变量值,则只能再一行行去掉这些注释恢复System.out.println语句。使用log4j可以很好的处理类似情况。

二.log4j使用方法

1、定配置文件

  首先使用配置文件将使我用程序更加灵活配置log日志出方式包括出目的地、出格式。Log4j支持两配置文件格式,一XML格式的文件,一Java特性文件log4j.properties=)。下面将介使用log4j.properties文件作配置文件的方法:

1配置根Logger,其

 log4j.rootLogger = [ level ] , appenderName, appenderName,

 其中,level 是日志记录,分OFFFATALERRORWARNINFODEBUGALL或者自定级别Log4j只使用四个级别从高到低分ERROR>WARN>INFO>DEBUG。通里定级别,您可以控制到用程序中相应级别的日志信息的开关。比如在里定INFO级别则应用程序中所有DEBUG级别的日志信息将不被打印出来。 appenderName就是指定日志信息出到哪个地方。可同指定多个出目的地

例:log4j.rootCategory=INFO,stdout,Runlog,Errorlog 日志类别为INFODEBUG将被屏蔽,其他的将被出。 stdout,Runlog,Errorlog别为3出目的地

2、常用出格式

-X:X信息对齐
%p:
日志信息级别
%d{}:
日志信息时间
%c:
日志信息所在地(名)
%m:
生的日志具体信息
%n:
出日志信息

例:
log4j.appender.stdout.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n
log4j.appender.Runlog.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n
log4j.appender.Errorlog.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n

3.目的地

配置日志信息输出目的地Appender,其
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
...
log4j.appender.appenderName.option = valueN
appenderName
就是指定日志信息出到哪个地方。您可以同指定多个出目的地。

log4j支持的出目的地:
org.apache.log4j.ConsoleAppender
控制台
org.apache.log4j.FileAppender
文件
org.apache.log4j.DailyRollingFileAppender
生一个日志文件
org.apache.log4j.RollingFileAppender
(文件大小到达指定尺寸的生一个新的文件),
org.apache.log4j.WriterAppender
(将日志信息以流格式送到任意指定的地方)
org.apache.log4j.net.SMTPAppender

org.apache.log4j.jdbc.JDBCAppender
数据
其他如:GUI件、甚至是套接口服器、NT的事件记录器、UNIX Syslog护进程等

例:
出到控制台
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
(指定出到控制台)
log4j.appender.Threshold=DEBUG
(指定类别
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
(指定出布局)
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
(指定出格式)

出到文件(轮换"日志文件",当日志文件达到指定大小文件就被关闭份,然后建一个新的日志文件)

log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender(指定出到文件)
log4j.appender.ROLLING_FILE.Threshold=ERROR
(指定类别
log4j.appender.ROLLING_FILE.File=
D:\logs\rolling.log(指定出的路径及文件名)
log4j.appender.ROLLING_FILE.MaxFileSize=10KB
(指定出到文件的大小)
log4j.appender.ROLLING_FILE.MaxBackupIndex=1
*
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
(指定采用出布局)
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
(指定采用出格式)

2. 在要出日志的类(Hello.java中加入相关语句:

1入所有需的commongs-logging
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

2
、在自己的中定一个org.apache.commons.logging.Log的私有静态类
private final Log log = LogFactory.getLog(getClass());

LogFactory.getLog()
方法的参数使用的是当前class例如:hello.class

3.然后在方法中记录日志:

if (log.isInfoEnabled())
{
log.info("
welcome
");
}

问题: 利用springconsol:::e打印出log4j:WARN Please initialize the log4j system properly

解决:说明你log4j.properties没有配置。log4j.properties放到工程的classpath中,eclipseclasspathbin,由于编译src下的文件会拷bin下,所以你可以把log4j.properties放到src

*当存的文件数目超maxBackupIndex+1,会除最早生成的文件,整个文件数目等于maxBackupIndex+1

这篇关于为不同的 Appender 设置日志输出级别:的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/757784

相关文章

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

Spring MVC如何设置响应

《SpringMVC如何设置响应》本文介绍了如何在Spring框架中设置响应,并通过不同的注解返回静态页面、HTML片段和JSON数据,此外,还讲解了如何设置响应的状态码和Header... 目录1. 返回静态页面1.1 Spring 默认扫描路径1.2 @RestController2. 返回 html2

C++中实现调试日志输出

《C++中实现调试日志输出》在C++编程中,调试日志对于定位问题和优化代码至关重要,本文将介绍几种常用的调试日志输出方法,并教你如何在日志中添加时间戳,希望对大家有所帮助... 目录1. 使用 #ifdef _DEBUG 宏2. 加入时间戳:精确到毫秒3.Windows 和 MFC 中的调试日志方法MFC

SpringBoot如何使用TraceId日志链路追踪

《SpringBoot如何使用TraceId日志链路追踪》文章介绍了如何使用TraceId进行日志链路追踪,通过在日志中添加TraceId关键字,可以将同一次业务调用链上的日志串起来,本文通过实例代码... 目录项目场景:实现步骤1、pom.XML 依赖2、整合logback,打印日志,logback-sp

Python使用Colorama库美化终端输出的操作示例

《Python使用Colorama库美化终端输出的操作示例》在开发命令行工具或调试程序时,我们可能会希望通过颜色来区分重要信息,比如警告、错误、提示等,而Colorama是一个简单易用的Python库... 目录python Colorama 库详解:终端输出美化的神器1. Colorama 是什么?2.

四种简单方法 轻松进入电脑主板 BIOS 或 UEFI 固件设置

《四种简单方法轻松进入电脑主板BIOS或UEFI固件设置》设置BIOS/UEFI是计算机维护和管理中的一项重要任务,它允许用户配置计算机的启动选项、硬件设置和其他关键参数,该怎么进入呢?下面... 随着计算机技术的发展,大多数主流 PC 和笔记本已经从传统 BIOS 转向了 UEFI 固件。很多时候,我们也

Linux中chmod权限设置方式

《Linux中chmod权限设置方式》本文介绍了Linux系统中文件和目录权限的设置方法,包括chmod、chown和chgrp命令的使用,以及权限模式和符号模式的详细说明,通过这些命令,用户可以灵活... 目录设置基本权限命令:chmod1、权限介绍2、chmod命令常见用法和示例3、文件权限详解4、ch

SpringBoot项目引入token设置方式

《SpringBoot项目引入token设置方式》本文详细介绍了JWT(JSONWebToken)的基本概念、结构、应用场景以及工作原理,通过动手实践,展示了如何在SpringBoot项目中实现JWT... 目录一. 先了解熟悉JWT(jsON Web Token)1. JSON Web Token是什么鬼

使用Spring Cache时设置缓存键的注意事项详解

《使用SpringCache时设置缓存键的注意事项详解》在现代的Web应用中,缓存是提高系统性能和响应速度的重要手段之一,Spring框架提供了强大的缓存支持,通过​​@Cacheable​​、​​... 目录引言1. 缓存键的基本概念2. 默认缓存键生成器3. 自定义缓存键3.1 使用​​@Cacheab

java如何调用kettle设置变量和参数

《java如何调用kettle设置变量和参数》文章简要介绍了如何在Java中调用Kettle,并重点讨论了变量和参数的区别,以及在Java代码中如何正确设置和使用这些变量,避免覆盖Kettle中已设置... 目录Java调用kettle设置变量和参数java代码中变量会覆盖kettle里面设置的变量总结ja