我正在尝试使用两个记录器。一个控制台日志和一个文件日志。问题是fileLoGGER没有写入文件。
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<ApplicationInsightsAppender name="aiAppender">
</ApplicationInsightsAppender>
<!-- file appender -->
<RollingFile name="LogToFile" fileName="..\standalone\log\app.log"
filePattern="log/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
<PatternLayout>
<pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss} %c{1} - %msg%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="5 MB" />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="fileLogger" level="debug" additivity="false">
<AppenderRef ref="LogToFile" />
</Logger>
<Logger name="consoleLogger" level="trace" additivity="false">
<AppenderRef ref="Console" />
</Logger>
<Root level="trace">
<AppenderRef ref="Console" />
<AppenderRef ref="aiAppender" />
<AppenderRef ref="LogToFile" />
</Root>
</Loggers>
</Configuration>
私有静态最终Logger LOGGER = LoggerFactory .getLogger(“ consoleLogger”);
private static final Logger fileLOGGER = LoggerFactory
.getLogger("fileLogger");
fileLOGGER.debug("some string");
请帮助。谢谢
答案 0 :(得分:0)
我认为您的配置没有问题。您正在使用日志文件的相对路径,这意味着它将相对于当前工作目录(启动应用程序的目录)。因此,该文件应位于一个名为standalone的目录中,从该目录开始向上一个目录。但是,很可能log4j没有该目录的权限。
我建议您确保自己拥有
<Configuration status="debug" ..
已指定,以便您可以查看log4j在何处创建文件。