log 4 jの使用とlog 4 jの時代遅れの問題の解決
16628 ワード
log 4 jの使用とlog 4 jの時代遅れの問題の解決
1.依存の追加
pom.xmlファイルの下にlog 4 j依存を追加するには:
2.log 4 jを追加する.properties
resourcesディレクトリにlog 4 jのプロファイルを追加します.内容は次のとおりです.
3.log 4 jプロファイルとリスナーの指定
Webでxmlでlog 4 jのプロファイルを指定し、リスナーを追加
サポートオリジナル-CSDN作者:[wei 542657623](https://blog.csdn.net/wei542657623)
log 4 j 2の使用
しかし、私たちが使用している間にこのような問題に遭遇します.
Springはlog 4 j 2を用いてこのクラスを置き換えることを提案する.
1.log 4 j 2の依存jarパケットの導入
2.web.xmlでの構成
3.resourcesディレクトリの下にlog 4 j 2を追加する.xmlファイル
テストの作成
サポートオリジナル-CSDN作者:[HeatDeath](https://blog.csdn.net/HeatDeath)
1.依存の追加
pom.xmlファイルの下にlog 4 j依存を追加するには:
<dependency>
<groupId>org.slf4jgroupId>
<artifactId>slf4j-apiartifactId>
<version>1.7.5version>
dependency>
<dependency>
<groupId>org.slf4jgroupId>
<artifactId>slf4j-log4j12artifactId>
<version>1.7.12version>
dependency>
<dependency>
<groupId>log4jgroupId>
<artifactId>log4jartifactId>
<version>1.2.17version>
dependency>
2.log 4 jを追加する.properties
resourcesディレクトリにlog 4 jのプロファイルを追加します.内容は次のとおりです.
#---- 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.log 4 jプロファイルとリスナーの指定
Webでxmlでlog 4 jのプロファイルを指定し、リスナーを追加
<context-param>
<param-name>log4jparam-name>
<param-value>classpath:log4j.propertiesparam-value>
context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListenerlistener-class>
listener>
サポートオリジナル-CSDN作者:[wei 542657623](https://blog.csdn.net/wei542657623)
log 4 j 2の使用
しかし、私たちが使用している間にこのような問題に遭遇します.
Springはlog 4 j 2を用いてこのクラスを置き換えることを提案する.
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.log 4 j 2の依存jarパケットの導入
<dependency>
<groupId>org.apache.logging.log4jgroupId>
<artifactId>log4j-apiartifactId>
<version>2.10.0version>
dependency>
<dependency>
<groupId>org.apache.logging.log4jgroupId>
<artifactId>log4j-coreartifactId>
<version>2.10.0version>
dependency>
<dependency>
<groupId>org.apache.logging.log4jgroupId>
<artifactId>log4j-webartifactId>
<version>2.9.1version>
dependency>
2.web.xmlでの構成
<dependency>
<groupId>org.apache.logging.log4jgroupId>
<artifactId>log4j-apiartifactId>
<version>2.10.0version>
dependency>
<dependency>
<groupId>org.apache.logging.log4jgroupId>
<artifactId>log4j-coreartifactId>
<version>2.10.0version>
dependency>
<dependency>
<groupId>org.apache.logging.log4jgroupId>
<artifactId>log4j-webartifactId>
<version>2.9.1version>
dependency>
3.resourcesディレクトリの下にlog 4 j 2を追加する.xmlファイル
<Configuration status="OFF" monitorInterval="1800">
<properties>
<property name="LOG_HOME">/WEB-INF/logsproperty>
<property name="FILE_NAME">finance-payproperty>
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](https://blog.csdn.net/HeatDeath)