Commons_logging包 Apache通用日志包
他为Log4JLogger;NoOpLog;LogKitLogger;Jdk14Logger;AvalonLogger提供了一共通用的接口进行调用,使得在使用各种不同的第三方日志包时变得非常简单。SimpleLog:是commons_logging自带的一个控制台输出日志。
可以通过简单的配置使用不同的第三方日志包。
在src根目录下放进commons-logging.properties文件,进行配置使用哪个第三方日志包。
#定义了使用的具体第三方的日值包
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.LogKitLogger
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.AvalonLogger
程序中调用:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public static Log log = LogFactory.getLog(test.class);
log.error("成功关闭链接");
在commons_logging.properties文件中定义好了使用那个第三方日志包,在程序中打印日志时,就使用的是那个包,非常方便。
Log 日志包
log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
ConsoleAppender,控制台输出
FileAppender,文件日志输出
SMTPAppender,发邮件输出日志
SocketAppender,Socket日志
NTEventLogAppender,Window NT日志
SyslogAppender,
JMSAppender,
AsyncAppender,
NullAppender
文件输出:RollingFileAppender
log4j.rootLogger=INFO,logfile
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.Threshold=INFO //输出以上的INFO信息
log4j.appender.logfile.File=../logs/INFO_log //保存log文件路径
log4j.appender.logfile.Append=true //默认为true,添加到末尾,false在每次启动时进行覆盖
log4j.appender.logfile.MaxFileSize=10KB //一个log文件的大小,超过这个大小就又会生成1个日志 //KB ,MB,GB
log4j.appender.logfile.MaxBackupIndex=3 //最多保存3个文件备份
log4j.appender.logfile.layout=org.apache.log4j.HTMLLayout //输出文件的格式
log4j.appender.logfile.layout.LocationInfo=true #是否显示类名和行数
log4j.appender.logfile.layout.Title=页面title #html页面的<title>
############################## SampleLayout ####################################
# log4j.appender.logfile.layout=org.apache.log4j.SampleLayout
############################## PatternLayout ###################################
# log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
# log4j.appender.logfile.layout.ConversionPattern=%d%p[%c]-%m%n%d
############################## XMLLayout #######################################
# log4j.appender.logfile.layout=org.apache.log4j.XMLLayout
# log4j.appender.logfile.layout.LocationInfo=true #是否显示类名和行数
############################## TTCCLayout ######################################
# log4j.appender.logfile.layout=org.apache.log4j.TTCCLayout
# log4j.appender.logfile.layout.DateFormat=ISO8601
#NULL, RELATIVE, ABSOLUTE, DATE or ISO8601.
# log4j.appender.logfile.layout.TimeZoneID=GMT-8:00
# log4j.appender.logfile.layout.CategoryPrefixing=false ##默认为true 打印类别名
# log4j.appender.logfile.layout.ContextPrinting=false ##默认为true 打印上下文信息
# log4j.appender.logfile.layout.ThreadPrinting=false ##默认为true 打印线程名
# 打印信息如下:
2007-09-13 14:45:39,765 [http-8080-1] ERROR com.poxool.test.test - error成功关闭链接
###############################################################################
每天文件的输出:DailyRollingFileAppender
log4j.rootLogger=INFO,errorlogfile
log4j.appender.errorlogfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorlogfile.Threshold=ERROR
log4j.appender.errorlogfile.File=../logs/ERROR_log
log4j.appender.errorlogfile.Append=true #默认为true,添加到末尾,false在每次启动时进行覆盖
log4j.appender.errorlogfile.ImmediateFlush=true #直接输出,不进行缓存
#'.'yyyy-MM: 每个月更新一个log日志
#'.'yyyy-ww: 每个星期更新一个log日志
#'.'yyyy-MM-dd: 每天更新一个log日志
#'.'yyyy-MM-dd-a: 每天的午夜和正午更新一个log日志
#'.'yyyy-MM-dd-HH: 每小时更新一个log日志
#'.'yyyy-MM-dd-HH-mm: 每分钟更新一个log日志
log4j.appender.errorlogfile.DatePattern='.'yyyy-MM-dd'.log' #文件名称的格式
log4j.appender.errorlogfile.layout=org.apache.log4j.PatternLayout
log4j.appender.errorlogfile.layout.ConversionPattern=%d%p[%c]-%m%n%d
控制台输出:
log4j.rootLogger=INFO,consoleAppender
log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.consoleAppender.Threshold=ERROR
log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern=%d%-5p%m%n
log4j.appender.consoleAppender.ImmediateFlush=true //直接输出,不进行缓存
log4j.appender.consoleAppender.Target=System.err //默认是System.out方式输出
!-----------------------------------------------------------------------------!! PATTERN FORMATS GLOSSARY !!-----------------------------------------------------------------------------!! %n – 新的一行 !! %m – 打印错误信息 !! %p – 打印优先级信息 (FATAL, ERROR, WARN, INFO, DEBUG or custom) !! %r – 打印程序开始后过去的毫秒数 !! %% - 打印输出的百分比 !! !!-----------------------SOME MORE CLUTTER IN YOUR LOG-------------------------!! %c - name of your category (logger), %c{2} will outputs last two components !! %t – 打印产生该日志信息的线程名称 !! %x – 打印嵌套的上下文信息 !! !!-------------------------SLOW PERFORMANCE FORMATS----------------------------!! %d – 打印时间和日期, 比如 %d{ISO8601}, %d{DATE}, %d{ABSOLUTE}, !! %d{HH:mm:ss,SSS}, %d{dd MMM yyyy HH:mm:ss,SSS} 等等 !! %l - Shortcut for %F%L%C%M !! %F - Java 代码文件名称 !! %L - Java 代码错误的行数 !! %C - Java 类的名称, %C{1} 将输出以“.”分割的后面一个 !! %M - Java 方法的名称 !! !!------------------------------FORMAT MODIFIERS-------------------------------!! %-any_letter_above - Left-justify in min. width (default is right-justify) !! %20any_letter_above - 20 char. min. width (pad with spaces if reqd.) !! %.30any_letter_above - 30 char. max. width (truncate beginning if reqd.) !! %-10.10r - Example. Left-justify time elapsed within 10-wide field. !! Truncate from beginning if wider than 10 characters. !!-----------------------------------------------------------------------------!
发送邮件:SMTPAppender
log4j.rootLogger=INFO,MAIL
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold=DEBUG
log4j.appender.MAIL.BufferSize=10KB
log4j.appender.MAIL.From=yu77585211111@163.com
log4j.appender.MAIL.SMTPHost=mail.myce.net.cn
log4j.appender.MAIL.Subject=Log4JMessage
log4j.appender.MAIL.To=yuyongpeng@myce.net.cn
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern=%d-%c-%-4r[%t]%-5p%c%x-%m%n
数据库:JDBCAppender
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DATABASE.URL=jdbc:oracle:thin:@210.51.173.94:1521:YDB
log4j.appender.DATABASE.driver=oracle.jdbc.driver.OracleDriver
log4j.appender.DATABASE.user=ydbuser
log4j.appender.DATABASE.password=ydbuser
log4j.appender.DATABASE.sql=INSERTINTOA1(TITLE3)VALUES('%d-%c%-5p%c%x-%m%n')
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATABASE.layout.ConversionPattern=%d-%c-%-4r[%t]%-5p%c%x-%m%n
//数据库的链接会有问题,可以重写org.apache.log4j.jdbc.JDBCAppender的getConnection使用数据库链接池去得链接,可以避免insert一条就链接一次数据库。
分享到:
相关推荐
本篇文章旨在详细介绍如何在Java中使用Log4j来管理日志,包括其配置方法以及与其他日志框架(如Commons Logging和JDK自带Logger)的对比。 #### 二、Jakarta Commons Logging (JCL) ##### 2.1 概述 Jakarta ...
Java Log4j 1,2 所需Jar包,一个完整的软件,日志是必不可少的。程序从开发、测试、维护、运行等环节,都需 要向控制台或文件等位置输出大量信息。这些信息的输出,在很多时候是使用 System.out.println()无法完成的。 ...
在完整版的`log4j.properties`中,通常包含以下内容: - **全局日志级别设置**:`log4j.rootLogger=DEBUG, stdout, FILE`,其中`DEBUG`是日志级别,`stdout`和`FILE`是Appender的名称。 - **定义Appender**:例如`...
本文将深入探讨如何在Android中使用Java进行日志操作。 首先,Android系统提供了一个名为`Log`的内置类,它提供了丰富的API用于打印不同级别的日志,如`Log.v()`, `Log.d()`, `Log.i()`, `Log.w()`, 和 `Log.e()`。...
在本项目中,"springmvc+mybatis+mysql+log4jdbc+excel 实现sql日志输出和excel导出",开发者旨在构建一个基于SpringMVC、MyBatis、MySQL数据库,利用Log4jdbc记录SQL日志,并通过Jxls进行Excel数据导出的功能完善的...
IntelliJ IDEA(简称IDEA)是一款流行的Java集成开发环境,它支持将log4j集成到项目中,通过配置pom.xml或build.gradle文件添加依赖,或者手动将log4j.jar添加到项目的类路径下,以便在IDEA中直接使用Log4j进行日志...
标题"Log4cxx Windows版"指的是Apache Log4cxx,这是一个专为Windows平台设计的日志记录库,它基于Java的Log4j项目,并提供了C++的接口。"强大的日志输出系统"强调了Log4cxx在日志处理方面的功能强大,能够满足各种...
Simple Logging Facade for Java (SLF4J) 是一种日志门面,它可以与不同的日志实现框架配合使用,如Log4j、JCL等,提供了统一的日志接口。 ##### 4.1 创建项目 同样地,创建一个新的Java Project,命名为`SLF4...
在Java开发中,日志记录是不可或缺的一部分,它帮助开发者追踪程序运行状态,定位问题。Log4j是Apache的一个开源项目,提供了一种灵活且强大的日志记录解决方案。然而,值得注意的是,Log4j和commons-log4j虽然都是...
《Log4j完全手册》是Java开发者不可或缺的...总的来说,《Log4j完全手册》是Java开发者理解和应用Log4j的权威指南,涵盖了Log4j的核心概念、配置、API使用以及最佳实践,对于优化日志管理和提升开发效率有着重要作用。
在这个“日志文件解析MySQL版”的资源包中,提供了JAVA源代码、可执行jar文件、日志文件样例以及MySQL建表脚本,这将帮助我们构建一个完整的日志分析系统,以下将详细介绍其中涉及的知识点。 首先,**JAVA日志解析*...
Log4cpp是C++编程语言中的一个开源日志记录框架,其设计灵感来源于Java的log4j库。它提供了灵活的日志记录机制,允许开发者根据需求调整日志级别、格式和输出目的地。 **描述分析:** 描述中提到,这个版本的log4...
"log常用jar"指的是Java开发中常用的日志处理相关的JAR库。这些库为开发者提供了方便的日志记录功能,帮助他们追踪程序运行状态,记录错误信息,以及在问题发生时进行调试。下面将详细介绍几个常见的日志框架及其...
Log4j 是一个广泛使用的Java日志框架,它为应用程序提供了灵活的日志记录功能。这个框架允许开发者控制日志信息的输出格式、输出位置以及日志级别,使得调试和故障排查更为高效。本文将详细介绍Log4j API,并指导...
Log4cxx是Apache的一个项目,它是一个针对C++的日志记录框架,类似于Java中的log4j。描述中提到,原始的源码可能不完整或缺失某些依赖,但这个版本已经过整理,可以在Visual Studio 2010环境下编译使用。 **Log4cxx...
这个“log4j2的配置文件完整版”应该包含了Log4j2所有可能的配置选项,允许开发者精细控制日志输出的行为。 在Log4j2中,配置文件是XML、JSON或YAML格式的文本文件,它定义了日志的级别、输出目的地、布局格式以及...
`Log4cxx`是Apache软件基金会的一个开源项目,它是C++语言实现的日志框架,类似于Java中的Log4j。本文将详细介绍`Log4cxx`的使用,包括其基本概念、功能、配置方法以及如何在项目中进行集成和应用。 首先,`Log4cxx...
Log4j是Apache基金会下的一个开源项目,它是一个基于Java的日志组件,在众多Java日志框架中占据着重要的位置。Log4j因其丰富的特性和易用性而在企业级应用开发中被广泛采用。通过Log4j,开发者可以轻松地在应用程序...
Log4j作为Java平台广泛使用的日志记录框架,其性能高效、功能强大,深受开发者的青睐。然而,随着技术的发展,安全问题也日益凸显,特别是2021年底爆出的Log4j2远程代码执行(RCE)漏洞,引发了全球范围内的广泛关注...