我使用log4j2.properties文件在Spring Boot应用程序中实现了日志记录。
请在以下参考url中查找代码:
Spring Boot-log4j2.properties创建日志文件,但不将日志写入文件
控制台日志记录正在工作,并且正在创建文件,其中一个日志正在写入文件,但其他日志没有写入文件。
在控制台中打印时,请查找记录器的差异,如下所示:
[INFO ] 2018-08-06 11:48:05.609 [restartedMain] DemoApplication - Logger enabled: Entering main //this log is writing into file.
2018-08-06 11:48:14.211 INFO 10788 --- [ restartedMain] c.j.c.DemoApplication : **** Demo Application Started *****// this is not writing into file.
但对于两者都使用日志。打印记录器的信息。
有谁能帮忙吗。
您必须仔细检查log4j2.properties文件。我已经用您的示例进行了测试,以下配置工作正常:
name=PropertiesConfig
appenders = console, file
appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
appender.file.type = File
appender.file.name = LOGFILE
appender.file.fileName=demo.log
appender.file.layout.type=PatternLayout
appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
loggers=file
logger.file.name=com.testsexample.test5
logger.file.level = debug
logger.file.appenderRefs = file
logger.file.appenderRef.file.ref = LOGFILE
rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT
主类如下(包名应该对应log4j2.propertieslogger.file.name属性):
package com.testsexample.test5;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Test5Application {
private final static Logger LOG = LogManager.getLogger(Test5Application.class);
public static void main(String[] args) {
LOG.info("Logger enabled: Entering main \n\n");
SpringApplication.run(Test5Application.class, args);
LOG.info("**** Demo Application Started *****");
}
}
项目结构为:
奇怪,但我在几次重新发布后复制了您的问题。请尝试用以下log4j2.xml替换log4j2.properties-xml配置中的问题已经解决
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Properties>
<Property name="log-path">logs</Property>
<Property name="LOG_PATTERN">
[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
</Property>
</Properties>
<Appenders>
<Console name="ConsoleAppender" target="SYSTEM_OUT">
<PatternLayout pattern="${LOG_PATTERN}"/>
</Console>
<File name="FileAppender" fileName="demo.log">
<PatternLayout>
<pattern>
[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
</pattern>
</PatternLayout>
</File>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="FileAppender"/>
<AppenderRef ref="ConsoleAppender"/>
</Root>
</Loggers>
</Configuration>
对于每日滚动附件,它将是:
<RollingFile name="FileAppender" fileName="demo.log" filePattern="demo %d{yyyy-MM-dd}.log">
<PatternLayout>
<pattern>
[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
</Policies>
<DefaultRolloverStrategy></DefaultRolloverStrategy>
</RollingFile>
1.IdleHandler 2.aidl stub 3.glide 缓存机制,lrucache数据结构 4.双亲委派机制 5.java中锁类型 6.启动模式 activity A—B—C C—A如何实现 7. activity A-B-A生命周期
问题记录 安装、使用kubernetes的过程中遇到的所有问题的记录。 推荐直接在Kubernetes的GitHub上提issue,在此记录所提交的issue。 1.Failed to start ContainerManager failed to initialise top level QOS containers #43856 重启kubelet时报错,目前的解决方法是: 1.在docke
我已经开发了一个用于WebRTC视频呼叫的android应用程序,运行良好。现在的要求是记录通话音频并将其存储在外部存储器中。我尝试过MedieRecorder,它正在录制音频并存储,但这里面临一个问题。当我开始录制音频时,声音在接收器一侧停止。Media Recorder不允许webrtc使用麦克风。 我尝试了以下代码。 我也尝试过“录音机”音频源(媒体记录器,音频源.MIC);录音机音频源(M
问题内容: 我想在我的应用程序中将slf4j + logback用于两个目的-日志和审计。 对于日志记录,我以常规方式记录日志: 对于审计,我创建一个特殊的命名记录器并登录到它: 登录配置: 问题:通过审核记录器记录的消息出现两次-一次在AUDIT_LOGGER下,一次在根记录器下。 14:41:57.975 [main]调试com.gammay.example.Main–> main() 14:
问题内容: 我积极使用脚本进行评分和汇总。我不知道的一件事是如何从脚本发出日志。我尝试了console.log,但后来没有成功。请让我知道,我该如何从常规脚本中发出日志。 问题答案: 这可以通过访问全局Elasticsearch记录器实例来完成。下面提供了它的常规示例。您也应该能够对javascript和其他脚本语言执行类似的操作。 因此,当您进行条款汇总时,可以执行以下操作- 一些来自Elast