并非每个日志都使用 LOG4j2 属性文件在日志文件中打印
Posted
技术标签:
【中文标题】并非每个日志都使用 LOG4j2 属性文件在日志文件中打印【英文标题】:Not Every log is printing in Log files using LOG4j2 Properties file 【发布时间】:2022-01-20 10:47:54 【问题描述】:我已经在 java 中使用 log4j2 为使用属性文件的日志配置了我的 webapp。
当我启动 tomcat 时,控制台中打印了很多日志,但在我的文件中只有几行打印。
我应该怎么做才能将控制台中存在的每一行打印到我的日志文件中。
最近我从 log 1.x 迁移到 log 2.16
当我使用 log1.x 时,所有内容都打印在控制台中的日志文件中,但在 log2 中它不打印。
例如,当我盯着 tomcat 时,我只在文件中获取与应用程序相关的日志,但没有与 tomcat 启动日志或任何其他 jar 相关日志相关的任何内容
谁能帮我解决这个问题
下面是我的配置文件
log4j2 属性:
status = all
appender.console.type = Console
appender.console.name = LogToConsole
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %dyyyy-MM-dd HH:mm:ss.SSS [%t] %c1 - %msg%n
#appender.file.type = File
#appender.file.name = LogToFile
#appender.file.fileName=logs/app.log
#appender.file.layout.type=PatternLayout
#appender.file.layout.pattern=[%-5level] %dyyyy-MM-dd HH:mm:ss.SSS [%t] %c1 - %msg%n
# Rotate log file
appender.rolling.type = RollingFile
appender.rolling.name = LogToRollingFile
appender.rolling.fileName = $catalina.home/logs/SunnyLogs.log
appender.rolling.filePattern = $catalina.home/logs/$$date:yyyy-MM/SunnyLogs-%dMM-dd-yyyy-%i.log.gz
appender.rolling.layout.type = PatternLayout
appender.rolling.layout.pattern = %d %p %C1. [%t] %m%n
appender.rolling.policies.type = Policies
appender.rolling.policies.time.type = TimeBasedTriggeringPolicy
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size=10MB
appender.rolling.strategy.type = DefaultRolloverStrategy
appender.rolling.strategy.max = 10
# Log to console and rolling file
logger.app.name = com.sunny.common
logger.app.level = all
logger.app.additivity = false
logger.app.appenderRef.rolling.ref = LogToRollingFile
logger.app.appenderRef.console.ref = LogToConsole
rootLogger.level = all
rootLogger.appenderRef.stdout.ref = LogToConsole
【问题讨论】:
【参考方案1】:经过深入研究,我找到了一个罐子作为我的解决方案
Log4j-jcl-2.16 罐子。
将此添加到我的构建路径后,我的文件中将打印所有日志
【讨论】:
以上是关于并非每个日志都使用 LOG4j2 属性文件在日志文件中打印的主要内容,如果未能解决你的问题,请参考以下文章