为不同的 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

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

mybatis和mybatis-plus设置值为null不起作用问题及解决

《mybatis和mybatis-plus设置值为null不起作用问题及解决》Mybatis-Plus的FieldStrategy主要用于控制新增、更新和查询时对空值的处理策略,通过配置不同的策略类型... 目录MyBATis-plusFieldStrategy作用FieldStrategy类型每种策略的作

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re

Windows设置nginx启动端口的方法

《Windows设置nginx启动端口的方法》在服务器配置与开发过程中,nginx作为一款高效的HTTP和反向代理服务器,被广泛应用,而在Windows系统中,合理设置nginx的启动端口,是确保其正... 目录一、为什么要设置 nginx 启动端口二、设置步骤三、常见问题及解决一、为什么要设置 nginx

java中不同版本JSONObject区别小结

《java中不同版本JSONObject区别小结》本文主要介绍了java中不同版本JSONObject区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录1. FastjsON2. Jackson3. Gson4. org.json6. 总结在Jav

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo