美文网首页
log4j的使用和log4j过时问题的解决

log4j的使用和log4j过时问题的解决

作者: 有_味 | 来源:发表于2018-08-14 00:18 被阅读52次

log4j的使用和log4j过时问题的解决

1.添加依赖

在pom.xml文件中的<dependencies>下添加log4j依赖:

        
        <!--log4j 依赖-->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.5</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.12</version>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>


2.添加log4j.properties

在resources目录下添加log4j的配置文件, 内容如下:

#---- global logging configuration
#---- level: FATAL,ERROR,WARN,INFO,DEBUG
#---- appender: console, file, mail
### set log levels ###
log4j.rootLogger = DEBUG,console

### 输出到控制台 ###
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern =  %d{ABSOLUTE} %5p %c{1}:%L - %m%n

### 输出到日志文件 ###
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File = ${uplat.root}/WEB-INF/logs/platform.log
log4j.appender.file.DatePattern=_yyyyMMdd'.log'
#log4j.appender.file.Append = true
#log4j.appender.file.Threshold = INFO
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern =%-d{yyyy-MM-dd HH\:mm\:ss}  [ %t\:%r ] - [ %p ]  %m%n

### 打印SQL ###
#log4j.logger.com.ibatis=DEBUG
#log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
#log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
#log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
#log4j.logger.java.sql.ResultSet=DEBUG

3.指定log4j配置文件和监听器

在web.xml中指定log4j的配置文件,并添加监听器

<!-- 指定监听器加载的log4j配置文件 -->
  <context-param>
      <param-name>log4j</param-name>
      <param-value>classpath:log4j.properties</param-value>
  </context-param>

  <listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  </listener>

支持原创-来自CSDN作者:wei542657623


log4j2的使用

但在我们使用的时候会遇到这样的问题:

mark

spring建议使用log4j2来替换这个类.

Deprecated. 
as of Spring 4.2.1, in favor of Apache Log4j 2 (following Apache's EOL declaration for log4j 1.x)

@Deprecated
public class Log4jConfigListener
extends java.lang.Object
implements ServletContextListener

1.引入log4j2的依赖jar包

     <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.10.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.10.0</version>
    </dependency>

    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-web</artifactId>
      <version>2.9.1</version>
    </dependency>

2.web.xml中的配置

     <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.10.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.10.0</version>
    </dependency>

    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-web</artifactId>
      <version>2.9.1</version>
    </dependency>

3.resources目录下新增log4j2.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="OFF" monitorInterval="1800">
    <properties>
        <property name="LOG_HOME">/WEB-INF/logs</property>
        <property name="FILE_NAME">finance-pay</property>
    </properties>


    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>

        <RollingFile name="running-log" fileName="${LOG_HOME}/${FILE_NAME}.log"
            filePattern="${LOG_HOME}/$${date:yyyy-MM}/${FILE_NAME}-%d{yyyy-MM-dd}-%i.log.gz"
            immediateFlush="true">
            <PatternLayout
                pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
            <DefaultRolloverStrategy max="20" />
        </RollingFile>
    </Appenders>
    <Loggers>

        <Root level="info">
               <!-- 这里是输入到文件,很重要-->
            <AppenderRef ref="running-log" />
            <!-- 这里是输入到控制台-->
            <AppenderRef ref="Console" />
        </Root>
    </Loggers>
</Configuration>

编写测试

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;


public class TestLog4j2 {
     static Logger logger = LogManager.getLogger(LogManager.ROOT_LOGGER_NAME);

 public static void main(String[] args) {
         logger.trace("trace message");
         logger.debug("debug message");
         logger.info("info message");
         logger.warn("warn message");
         logger.error("error message");
         logger.fatal("fatal message");
         System.out.println("Hello World!");
     }

}

支持原创-来自CSDN作者:HeatDeath

相关文章

  • log4j的使用和log4j过时问题的解决

    log4j的使用和log4j过时问题的解决 1.添加依赖 在pom.xml文件中的下添...

  • 初涉Log4j、Java异常学习

    1 Log4j 1.1 什么是Log4j? Log4j是Apache的一个开源项目,通过使用Log4j,我...

  • Log4J

    1. Log4J概述 1.1. Log4J是什么 Log4j是Apache的一个开源项目,通过使用Log4j,我们...

  • log4j配置文档

    Log4j简介 通过使用Log4j可以看到程序运行过程中更详细的信息经常在系统之使用Log4j查看日志 使用方法 ...

  • java.lang.ClassNotFoundExceptio

    弄了一下午才解决的log4j问题##### 在一个webservice项目中,引入log4j来记录Exceptio...

  • log4j

    .log4j介绍 1通过log4j可以看到程序运行过程中更详细的信息 (1)经常使用log4j查看日志 2使用 (...

  • 每天吃一点Androidの日志

    一. Log4j 官网参考资料:Log4j使用详解(整理) 1.1、前言 1.1.1、 出生:Log4j是Apac...

  • log4j使用教程

    Log4j简介 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的...

  • Eclipse配置Hadoop运行日志

    问题描述 解决方案 既然是log4j的问题,那我们配置一个log4j的文件就好了,我们在项目的src文件夹中新建一...

  • LOG4J基础使用

    LOG4J是什么? Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是...

网友评论

      本文标题:log4j的使用和log4j过时问题的解决

      本文链接:https://www.haomeiwen.com/subject/itopbftx.html