`

log4j系统日志

阅读更多

 

log4j的日志配置

 

1.  配置记录器(logger)

 

    Log4j的记录器包含两种,一个根记录器它必须且永远存在,且不能通过名字检索或引用,在配置文件中,根记录器定义方法如下:

 

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

 

注:Level是记录器的级别,它是日志记录的优先级,分为OFFFATALERRORWARNINFODEBUGALL或者您定义的级别。Log4j建议只使用四个级别:ERRORWARNINFODEBUG( DEBUG < INFO < WARN < ERROR < FATAL)

 

如果一条log信息的级别,大于等于记录器的级别值,那么记录器就会记录它。例如level被设置为INFO级别,那么应用程序中所有的DEBUG的日志信息将不被打印出来。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。

 

    appenderName是输出源的名字,它指定日志信息输出到哪个地方。您可以为一个记录器指定多个输出源。

 

 

 

配置日志信息输出(Appender)
    log4j 还允许日志记录请求打印到多个输出目的地,按 log4j 的叫法是输出源。一个记录器可以有多个输出源。一条log信息如果可被这个记录器处理,则该记录器会把这条信息送往每个它所拥有的输出源,以及层次结构中更高级的输出源。例如,根记录器以控制台作为输出源,则所有可被纪录的日志都将至少打印到控制台。

 

配置日志信息输出源,其语法如下:
log4j.appender.appenderName = fully.qualified.name.of.appender.class
      log4j.appender.appenderName.option1 = value1   …   
log4j.appender.appenderName.option = valueN

 

Log4j提供的appender有以下几种 

 

org.apache.log4j.ConsoleAppender控制台

 

org.apache.log4j.FileAppender文件 

 

org.apache.log4j.DailyRollingFileAppender每天产生一个日志文件

 

org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的)

 

org.apache.log4j.WriterAppender将日志信息以流格式发送到任意指定的地方 

 

org.apache.log4j.SocketAppender (Socket)

 

org.apache.log4j.NtEventLogAppender   (NTEvent Log) 

 

org.apache.log4j.JMSAppender   (电子邮件

 

2.  配置日志信息的格式(layout)

 

其语法如下:

 

log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class       log4j.appender.appenderName.layout.option1 = value1   …     log4j.appender.appenderName.layout.option = valueN

 

其中,Log4j提供的layout包含以下几种:

 

org.apache.log4j.HTMLLayout(以HTML表格形式布局)

 

org.apache.log4j.PatternLayout(可以灵活地指定布局模式)

 

org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)

 

org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

 

如果采用了PatternLayout, Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下:

 

%m 输出代码中指定的消息

 

%p 输出优先级,即DEBUGINFOWARNERRORFATAL 

 

%r 输出自应用启动到输出该log信息耗费的毫秒数 

 

%c 输出所属的类目,通常就是所在类的全名 

 

%t 输出产生该日志事件的线程名 

 

%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n

 

%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:20021018 221028921 

 

%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。

 

 

 

例子:建一个名为demo数据库,建一个表T_Syslog。如下: 

 

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[T_Syslog]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[T_Syslog]
GO

CREATE TABLE [dbo].[T_Syslog] (
	[syslogID] [numeric](18, 0) IDENTITY (1, 1) NOT NULL ,
	[logType] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
	[menuCode] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
	[content] [varchar] (1000) COLLATE Chinese_PRC_CI_AS NULL ,
	[uDate] [datetime] NOT NULL 
) ON [PRIMARY]
GO

 

log4j.properties

 

log4j.rootLogger=info,db,logone
#日志输出到控制台
log4j.appender.logone=org.apache.log4j.ConsoleAppender
log4j.appender.logone.layout=org.apache.log4j.PatternLayout
#日志的输出格式
log4j.appender.logone.layout.ConversionPattern=%d{yy-MM-dd HH\:mm\:ss} %5p %c{1}\:%L - %m%n 

#每天生成一个新的日志
log4j.appender.db=org.apache.log4j.DailyRollingFileAppender
#路径
log4j.appender.db.File=/logs/syslog.log
log4j.appender.db.Append = true
log4j.appender.db.layout=org.apache.log4j.PatternLayout
#日志的输出格式
log4j.appender.db.layout.ConversionPattern=%d{yyyy.MM.dd HH\:mm\:ss} %p %c{1}(%L)\:? %m%n 

#配置数据源
log4j.appender.db=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.logFtwo.BufferSize=10  
log4j.appender.db.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
log4j.appender.db.URL=jdbc:sqlserver://192.168.0.116:1433;databaseName=market
log4j.appender.db.user=sa
log4j.appender.db.password=sa
#将日志写入数据库
log4j.appender.db.sql=insert into T_Syslog (menuCode,logType,content) values ('%c','%p','%l,%m')

Log4jUtil.java

import org.apache.log4j.Logger;


public class Log4jUtil{
	private static Logger log=Logger.getLogger(Log4jUtil.class.getClass());
	public static void main(String[] args) {
		log.debug("12312321321");
		log.info("1231");
		log.error("1231231");
	}
}

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Log4J系统日志全面详解

    这是一个简单的系统日志管理,通过使用Apache的这个开源项目,可以方便的解决我们的日志,它可以输出日志到数据库,文件,邮箱..等。

    tomcat8更换log4j记录日志

    在Tomcat中,Log4j可以用来代替默认的日志系统,提供更精细化的日志控制和更好的日志分析能力。 压缩包中的"**log4j.properties**"文件是Log4j的配置文件,用于定义日志的输出级别、格式、目的地等。配置文件中的...

    log4j自定义日志文件名及日志输出格式

    Log4j是Apache提供的一款广泛使用的日志框架,它提供了丰富的配置选项,允许开发者灵活地控制日志输出。当我们面对特定项目需求,比如需要自定义日志文件名和日志输出格式时,Log4j同样提供了相应的解决方案。 首先...

    tomcat下的log4j日志配置

    在使用 Apache Tomcat 作为服务器时,合理配置日志框架(如 Log4j)能够极大地提高开发效率和系统的可维护性。本文将详细介绍两种常见的 Log4j 配置方式:Tomcat 级别的统一日志管理和每个 web 应用分别配置 Log4j,...

    示范如何在android工程中使用log4j记录日志

    然而,由于Android系统对第三方库的限制,直接在Android工程中使用Log4j需要一些额外的步骤。本文将详细讲解如何在Android项目中集成和使用Log4j。 首先,我们需要理解Log4j的基本概念。Log4j主要包括三个核心组件...

    使用log4j2实现日志数据脱敏

    Log4j2是Apache软件基金会开发的日志框架Log4j的升级版,它具有更高的性能、灵活性和可配置性。Log4j2支持多种日志记录级别(如DEBUG、INFO、WARN、ERROR),并允许通过XML、JSON、YAML或纯Java配置文件进行灵活配置...

    log4j按功能保存日志

    在“log4j按功能保存日志”的场景中,我们通常会利用Log4j的配置灵活性,将不同功能的日志分别写入不同的文件,以便于后期分析、排查问题和监控系统状态。 1. **Log4j基本概念** - **Logger**: 日志记录器,是Log4...

    Log4j记录日志DEMO

    **Log4j记录日志DEMO** 在Java开发中,日志记录是不可或缺的一部分,它帮助开发者追踪程序运行状态、定位错误和调试代码。Log4j是Apache组织提供的一款广泛使用的开源日志框架,适用于各种Java应用程序。Log4j以其...

    log4j日志报错解决办法

    3. 应用程序可能加载了其他地方的Log4j配置,例如系统级的Log4j配置。 总的来说,处理Log4j的初始化警告,关键在于正确配置和引入Log4j依赖,以及在需要使用日志的地方正确初始化logger。确保配置文件可用且路径...

    log4j日志配置以及配置文件详解

    **日志系统在软件开发中扮演着至关重要的角色,它能帮助开发者跟踪程序运行...同时,不断学习和探索log4j的高级特性,如异步日志、MDC(Mapped Diagnostic Context)等,可以进一步提升日志系统的实用性和可维护性。

    log4j2.xml记录日志到到数据库

    理解Log4j2的配置和使用是每个Java开发者必备的技能,这对于日后的故障排查和系统维护至关重要。在实际应用中,你可以根据需求调整配置,例如增加日志过滤规则、添加更多的日志输出目标,或者改变日志格式等。

    spring简单注解+log4j记录日志

    综上所述,"spring简单注解+log4j记录日志"这个主题涵盖了Spring框架中的注解使用、Log4j日志系统以及AOP的应用。通过学习这些内容,初学者可以更好地理解和实践Spring框架,同时提高代码的可维护性和调试效率。在...

    若依框架使用的log4j2.16.0,修复log4j漏洞log4j2下载最新log4j2.16.0下载

    Log4j是一个广泛使用的Java日志记录框架,它允许开发者在应用程序中轻松地记录各种级别的日志信息,如DEBUG、INFO、WARN、ERROR等。在2021年底,一个重大的安全漏洞(CVE-2021-44228)被发现在Log4j2的早期版本中,...

    mybatis,log4j打印日志到后台和文件

    在 MyBatis 中,我们通常会依赖日志框架如 Log4j、Logback 或 JDK 内置的日志系统。Log4j 以其强大的功能和灵活性深受开发者喜爱。首先,确保你的项目已经包含 Log4j 的依赖,如果是 Maven 项目,可以在 `pom.xml` ...

    使用Slf4j集成Log4j2构建项目日志系统的完美解决方案.docx

    使用Slf4j集成Log4j2构建项目日志系统的完美解决方案 Slf4j是简单的日志外观(Facade)模式,它提供了统一的日志接口,使得用户可以选择不同的日志实现。Slf4j的出现使得日志系统的开发变得更加灵活和便捷。Log4j2...

    log4j日志包日志包

    通过`log4j.properties`或`log4j.xml`配置文件,可以定制日志输出的级别、目的地和格式,从而满足不同项目的需求。在实际开发中,正确地使用和配置`log4j`能显著提升问题排查和系统监控的效率。

    log4j日志文件乱码解决方法

    在IT行业中,日志记录是调试和监控应用程序的关键部分,而Log4j是Java平台广泛使用的日志框架。本文将详细讨论如何解决Log4j日志文件出现的乱码问题。 首先,我们要理解Log4j的工作原理。Log4j允许开发者自定义日志...

    log4j记录Debug日志

    Log4j提供了一个灵活且高效的日志系统,允许开发者自定义日志级别、输出格式和存储位置。 1. **日志级别**:Log4j支持多种日志级别,包括TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF。其中,DEBUG用于调试信息,...

    AndroidStudio 使用log4j记录日志,按照大小定期滚动日志Demo

    在Android环境中,由于系统默认的日志记录器(Logcat)有一些限制,如日志长度、级别控制等,因此,引入log4j可以提供更高级别的控制和定制能力。 1. **集成log4j到Android项目** 要在Android项目中使用log4j,...

Global site tag (gtag.js) - Google Analytics