log4j日志输出使用_1

转自https://www.cnblogs.com/sky230/p/5759831.html

Log4j是帮助开发人员进行日志输出管理的API类库。它最重要的特点就可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。很多程序员经常会使用System.out.println语句输出某个变量值的方法进行调试。这样会带来一个非常麻烦的问题:一旦哪天程序员决定不要显示这些System.out.println的东西了就只能一行行的把这些语句注释掉。若哪天又需调试变量值,则只能再 一行行去掉这些注释恢复System.out.println语句。使用log4j可以很好的处理类似情况:使用"DEBUG"等级输出会类似System.out.println,开发后期不需要输出调试时可以把等级根据需要调高,如调到"ERROR"等级,只有出错错误时才输出。

  在apache网站:jakarta.apache.org/log4j可以免费下载到Log4j最新版本的软件包。

使用步骤分为3步:

目录结构如下:

1. 加入log4j的jar包。

2. 在项目根目录下添加配置文件log4j.properties(可以修改第一行代码来设置等级和格式)

#设置logger级别DEBUG、INFO、WRNING、ERROR和输出格式A、B、C或D
log4j.rootLogger=DEBUG, A

#输出到控制台
log4j.appender.A=org.apache.log4j.ConsoleAppender
log4j.appender.A.layout=org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

#输出到E盘的log.log文件
log4j.appender.B=org.apache.log4j.FileAppender
log4j.appender.B.File=E:\\log.log
log4j.appender.B.layout=org.apache.log4j.SimpleLayout

#输出到E盘的log.html文件
log4j.appender.C=org.apache.log4j.RollingFileAppender
log4j.appender.C.File=E:\\log.html
log4j.appender.C.MaxFileSize=1000KB
log4j.appender.C.MaxBackupIndex=10
log4j.appender.C.layout=org.apache.log4j.HTMLLayout

log4j.appender.D=org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File=E:\\log.log
log4j.appender.D.layout=org.apache.log4j.TTCCLayout

3. 创建日志记录器来使用

package testLog4j;

import org.apache.log4j.Logger;

public class Test {

    //获取日志记录器Logger,名字为本类类名
    private static Logger log = Logger.getLogger(Test.class);

    public static void main(String[] args) {
        for(int i=0;i<10;i++){
            log.debug("HellWord");
        }
    }

}

输出结果如下:

  Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度,比如使用DEBUG,则会包括前面3个,也就是全部都包括,使用INFO,则不包括DEBUG;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。

1. 配置log输出目的地:

org.apache.log4j.ConsoleAppender(控制台)

org.apache.log4j.FileAppender(文件)

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

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

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

2. log信息的格式:

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

org.apache.log4j.SimpleLayout(简单格式的日志,只包括日志信息的级别和指定的信息字符串 ,如:DEBUG - Hello)

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

org.apache.log4j.PatternLayout(灵活地自定义日志格式)

当使用org.apache.log4j.PatternLayout来自定义信息格式时,可以使用log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-ddHH:mm:ss} %p-%m%n 来格式化信息

%c 输出所属类的全名,可写为 %c{Num} ,Num类名输出的范围 如:"com.sun.aaa.classB",%C{2}将使日志输出输出范围为:aaa.classB

%d 输出日志时间其格式为 可指定格式 如 %d{HH:mm:ss}等

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

%n 换行符

%m 输出代码指定信息,如info(“message”),输出message

%p 输出日志的优先级,即 FATAL ,ERROR 等

%r 输出从启动到显示该条日志信息所耗费的时间(毫秒数)

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

  其他详细可参考:http://www.codeceo.com/article/log4j-usage.html

          http://blog.csdn.net/anlina_1984/article/details/5313023/

分类: 日志

原文地址:https://www.cnblogs.com/dayanjing/p/9864202.html

时间: 2024-09-28 20:41:11

log4j日志输出使用_1的相关文章

log4j日志输出到web项目指定文件夹

感谢 eric2500 的这篇文章:http://www.cxyclub.cn/n/27860/ 摘要:尝试将log4j的文件日志输出到web工程制定目录,遇到了很多问题,最终在eric2500的指导下搞定,下面是记录. 其原理在于log4j的配置文件支持服务器的vm的环境变量,如${oss.log4j.path},在log4j加载配置文件之前,先用 System.setProperty("","")设置好日志文件路径,这一操作通过一个初始的servlet来实现.

web项目Log4j日志输出路径配置问题

问题描述:一个web项目想在一个tomcat下运行多个实例(通过修改war包名称的实现),然后每个实例都将日志输出到tomcat的logs目录下实例名命名的文件夹下进行区分查看每个实例日志,要求通过尽可能少的改动配置文件,最好修改实例名后可以不修改log4j的配置文件. 实现分析:一般实现上面需求,需要在修改完war包名称之外要再做下面配置: 1.修改每个实例名下web.xml中参数webAppRootKey为不同值.同一个tomcat下运行多个web应用时,该值相同的话,运行时会抛异常. <c

log4j日志输出到日志文件中和控制台中 +log4j配置详解

1.引入log4j的jar包 https://mvnrepository.com/,可以找到log4j的jar和依赖. 2.创建log4j.properties,并配置log4j #设置日志的级别 ,多个以,分开(没有给出的,则不会被输出) log4j.rootLogger=debug,A,R # log4j.appender.logfile.encoding=UTF-8 #DailyRollingFileAppender每天产生一个日志文件 log4j.appender.R=org.apach

Mybatis下log4j日志输出不正常的解决办法 ,很实用哦 !!!!

使用Mybatis的时候,有些时候能输出(主要是指sql,参数,结果)日志.有些时候就不能. 无法输出日志的时候,无论怎么配置log4j,不管是properties的还是xml的,都不起作用. 有些时候,我们没做什么配置就能输出日志.... 这是一个让无数人烦躁的问题.其实解决问题很容易(我过了这么久才解决,以前都用拦截器输出). 这是一个普大喜奔的日子,让我们一起来看看如何解决mybatis的日志问题. 为什么说这个问题很容易解决呢?因为mybatis的文档写的很清楚. 为什么我们都没找到解决

log4j日志输出级别高低

Log4j是Apache的开源项目一个功能强大的日志组件,提供方便的日志记录.日志记录器(Logger)是日志处理的核心组件Log4j建议只使用四个级别,优先级从高到低分别是FATAL, ERROR.WARN.INFO.DEBUG.通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关.比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来.程序会打印高于或等于所设置级别的日志,设置的日志等级越高,打印出来的日志就越少.如果设置级别为INFO,则优先级

log4j日志输出配置

1.log4j的文件配置: log4j.rootLogger = debug,stdout,I,E #### 控制台打印 stdout:标准输出### #log4j.appender.stdout = org.apache.log4j.ConsoleAppender #log4j.appender.stdout.Target = System.out #log4j.appender.stdout.layout = org.apache.log4j.PatternLayout #log4j.app

log4j日志输出级别

log4j定义了8个级别的log(除去OFF和ALL 可以说分为6个级别), * 优先级从高到低依次为:OFF FATAL ERROR WARN INFO DEBUG TRACE ALL * * ALL 最低等级的 用于打开所有日志记录 * TRACE 很低的日志级别 一般不会使用 * DEBUG 指出细粒度信息事件对调试应用程序是非常有帮助的 主要用于开发过程中打印一些运行信息 * INFO 消息在粗粒度级别上突出强调应用程序的运行过程 * 打印一些你感兴趣的或者重要的信息 这个可以用于生产环

JAVA log4j日志文件使用

//1.导入jar包,log4j-1.2.17.jar//2.src下创建log4j.properties文件//3.配置properties文件/*log4j.rootLogger(默认是对整个工程生效)=DEBUG,stdout(控制台),a, b, -日志级别(ALL<DEBUG<INFO<WARN<ERROR<FATAL<OFF)log4j.logger.com.hutu=info, stdout,表示该日志只对package com.hutu生效 log4j.

log4j(五)——如何控制不同目的地的日志输出?

一:测试环境与log4j(一)--为什么要使用log4j?一样,这里不再重述 二:老规矩,先来个栗子,然后再聊聊感受 import org.apache.log4j.*; import java.io.*; public class UseLog4j { //日志记录器 private static Logger LOGGER = LogManager.getLogger(UseLog4j.class); //程序入口--主函数 public static void main(String[]a