slf4j日志文件在哪里保存?

编程入门 行业动态 更新时间:2024-10-24 09:25:59
本文介绍了slf4j日志文件在哪里保存?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有以下导入:

import org.slf4j.Logger; import org.slf4j.LoggerFactory;

以及以下实例:

private static Logger logger = LoggerFactory.getLogger(Test.class);

以及我的Main方法中的以下内容:

logger.info(SOME MESSAGE:);

但是,我无法在任何地方找到输出。我只看到在我的控制台中有:

21:21:24.235 [main] INFO some_folder.Test - SOME MESSAGE :

如何找到日志文件?

请注意,以下内容位于我的构建路径中:

slf4j-api-1.7.5.jar

slf4j-log4j12-1.6.4.jar

<我读了类似问题的答案,但没有人真正说明如何解决这个问题。

解决方案

slf4j只是一个API。您应该有一个具体的实现(例如log4j)。这个具体实现有一个配置文件,告诉你存储日志的位置。

当slf4j使用记录器捕获日志消息时,会将其提供给appender,该appender决定如何处理消息。默认情况下,ConsoleAppender在控制台中显示消息。

默认配置文件为:

<?xml version =1.0encoding =UTF-8?> <配置状态=警告> < Appenders> <! - 默认情况下=>控制台 - > < Console name =Consoletarget =SYSTEM_OUT> < PatternLayout pattern =%d {HH:mm:ss.SSS} [%t]%-5level%logger {36} - %msg%n/> < / Console> < / Appenders> < Loggers> < Root level =error> < AppenderRef ref =控制台/> < / Root> < / Loggers> < /配置>

如果您在类路径中提供配置文件,那么您的具体实现(在您的情况下,log4j) )会找到并使用它。请参阅 Log4J文档。

文件追加器的示例:

< Appenders> <文件名=文件fileName =$ {filename}> < PatternLayout> < pattern>%d%p%C {1。} [%t]%m%n< / pattern> < / PatternLayout> < / File> ... < / Appenders>

文件追加器的完整示例:

<?xml version =1.0encoding =UTF-8?> <配置状态=警告> < Appenders> <文件名=文件fileName =$ {filename}> < PatternLayout> < pattern>%d%p%C {1。} [%t]%m%n< / pattern> < / PatternLayout> < / File> < / Appenders> < Loggers> < Root level =error> < AppenderRef ref =File/> < / Root> < / Loggers> < / Configuration>

I have the followed imports:

import org.slf4j.Logger; import org.slf4j.LoggerFactory;

and the following instantiation:

private static Logger logger = LoggerFactory.getLogger(Test.class);

and the following in my Main method:

logger.info("SOME MESSAGE: ");

However, I'm not able to find the output anywhere. All I see is that in my console there is:

21:21:24.235 [main] INFO some_folder.Test - SOME MESSAGE:

How do I locate the log file?

Note that the following are on my build path:

slf4j-api-1.7.5.jar

slf4j-log4j12-1.6.4.jar

I read the answer to similar questions but nobody actually says how to fix the problem.

解决方案

slf4j is only an API. You should have a concrete implementation (for example log4j). This concrete implementation has a config file which tells you where to store the logs.

When slf4j catches a log messages with a logger, it is given to an appender which decides what to do with the message. By default, the ConsoleAppender displays the message in the console.

The default configuration file is :

<?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <!-- By default => console --> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> </Appenders> <Loggers> <Root level="error"> <AppenderRef ref="Console"/> </Root> </Loggers> </Configuration>

If you put a configuration file available in the classpath, then your concrete implementation (in your case, log4j) will find and use it. See Log4J documentation.

Example of file appender :

<Appenders> <File name="File" fileName="${filename}"> <PatternLayout> <pattern>%d %p %C{1.} [%t] %m%n</pattern> </PatternLayout> </File> ... </Appenders>

Complete example with a file appender :

<?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <File name="File" fileName="${filename}"> <PatternLayout> <pattern>%d %p %C{1.} [%t] %m%n</pattern> </PatternLayout> </File> </Appenders> <Loggers> <Root level="error"> <AppenderRef ref="File"/> </Root> </Loggers> </Configuration>

更多推荐

slf4j日志文件在哪里保存?

本文发布于:2023-11-25 04:02:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1628240.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文件   日志   slf4j

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!