`

Java中Log日志使用

    博客分类:
  • Java
阅读更多

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=
log4j.appender.MAIL.SMTPHost=
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一条就链接一次数据库。()
分享到:
评论

相关推荐

    log4j.rar java写LOG日志的驱动

    3. **MDC(Mapped Diagnostic Context)和NDC(Nested Diagnostic Context)**:用于存储与当前线程相关的上下文信息,方便在日志中添加额外的诊断信息。 4. **Lookups(查找机制)**:允许在配置文件中使用变量,...

    log4j使用与java中log4j记录日志如何写入数据库

    本文将详细介绍如何在Java中使用Log4j来记录日志,并将其写入数据库。 首先,我们需要了解Log4j的基本结构。一个简单的Log4j项目通常包含以下几个部分: 1. **配置文件**:Log4j的配置文件通常是`log4j.properties...

    java 生成批量log日志

    利用java代码实现 生成批量log日志文件

    java Log日志规范

    3. **Layout**: 定义日志格式,如`appender.stdout.layout.type=PatternLayout`,`appender.stdout.layout.pattern=%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n`,这个例子中使用了自定义的日期、线程、...

    java log 日志示例程序

    通过`LogDemo`程序,我们可以了解到在Java中使用`log4j`和`commons-logging`进行日志记录的基本方法,这对于调试、问题排查和性能分析都是至关重要的。在实际开发中,可以根据项目需求调整配置,实现更精细化的日志...

    java swing用Logger输出错误日志.docx

    这篇文档主要讨论了如何在Java Swing应用中使用`Logger`来生成和管理错误日志。 `Logger`是Java的日志记录工具,它提供了多种级别(如SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST)来区分不同严重程度的...

    java中log4应用

    在Java代码中使用Log4j非常简单,首先要获取一个Logger实例,然后通过调用相应级别的方法输出日志。例如: ```java import org.apache.log4j.Logger; public class MyClass { private static final Logger logger...

    Java 简单方便的日志(log)功能

    简单方便的日志功能, 创建log文件, 自动以当前日期命名, log打印到文件, 自动添加时间戳。

    Java自定义日志模块实现

    常规的做法是,修改项目中每一处调用到“log4j”相关模块的代码。如果是项目比较大,所要花费的工作量也真不少,但如果使用了上面的方式,则只需要实现“LoggerAdapter”接口,使之与具体的日志(logger)进行适配,...

    java关于log4j打印日志demo

    本示例将详细介绍如何在Java项目中使用Log4j进行日志打印。 首先,Log4j的核心组件包括配置文件(通常为`log4j.properties`或`log4j.xml`)、Logger、Appender和Layout。配置文件定义了日志信息的输出方式、目的地...

    Java中的Graylog:微服务架构下的日志管理与分析

    通过在Java项目中集成Graylog,可以有效地管理和分析日志数据,提高系统的可维护性和可观测性。同时,通过与Vue.js的集成,可以实现前后端分离的现代Web应用开发。 通过本文的介绍,希望你能对Graylog在Java中的...

    详细讲解Java中log4j的使用方法

    假设已经正确配置了log4j.properties文件,接下来是如何在Java代码中使用Log4j。 1. **获取Logger对象**:通过Logger类的静态方法`getLogger`获取对应的Logger对象。 ```java import org.apache.log4j.Logger; ...

    kafka_Java_Log4j

    在Java开发过程中,日志记录是一项至关重要的任务,它帮助开发者追踪程序运行状态,定位问题。Log4j是一个广泛使用的日志记录框架,而Apache Kafka则是一个分布式流处理平台,常用于实时数据传输。当我们需要将Log4j...

    java动态日志注入工具anylog.zip

    anylog 为开发人员提供一个易于使用的平台,帮助开发人员在正在运行的系统中随时加入自己想要的日志,而免于修改代码和重启。 使用场景举例  1、一些同学在写代码时,把异常吃掉了,使得问题难以查找,可以...

    Java与log4j2整合mongoDB需要的jar包

    在Java开发过程中,为了实现日志管理,我们通常会使用如log4j2这样的日志框架。Log4j2是一个强大的、灵活的日志系统,它提供了丰富的配置选项和高性能的日志记录能力。当我们的应用程序需要将日志信息存储在数据库中...

    如何在Java工程中使用Log4j

    Java工程中使用Log4j详解 Log4j是Apache提供的一个流行的日志记录工具,广泛应用于Java工程中。它可以帮助开发者记录程序的执行过程,方便BUG的追踪和程序的优化。在Java工程中使用Log4j可以提高程序的可读性和可...

    product_swing_java自带log使用_swing皮肤定义_java_

    本文将深入探讨如何在Swing应用中使用Java自带的日志系统(logging API)以及如何自定义Swing界面的皮肤。 一、Java自带日志(logging API)的使用 Java内置的日志API提供了一种灵活且可配置的方式来记录应用程序...

    java-日志-log4j.7z

    在Eclipse中使用Log4j,需要在项目的类路径中包含Log4j的jar文件,并创建一个配置文件(通常是log4j.properties或log4j.xml)。配置文件定义了Loggers、Appenders和Layouts,以及它们之间的关联。例如,你可以设置一...

    最简洁的使用log4j日志的JAVA示例

    现在,我们可以在Java代码中使用Log4j。例如,有一个名为`SLF4JDemo.java`的文件,我们可以这样引入并使用Log4j: ```java import org.apache.log4j.Logger; public class SLF4JDemo { private static final ...

    Linux中java log输出中文乱码.docx

    Linux 中 Java log 输出中文乱码解决方案 Linux 中 Java log 输出中文乱码问题是 Java 应用程序在 Linux 环境下一个常见的问题。该问题的产生是由于 Linux 系统的 locale 设置不正确导致的。locale 是 Linux 系统中...

Global site tag (gtag.js) - Google Analytics