如何更改 slf4j 日志记录级别
How to change slf4j logging level
我在 glassfish 3.1.2 服务器上的 Java EJB 项目 运行 中使用 org.slf4j.Logger。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class main {
private static final Logger LOGGER = LoggerFactory.getLogger(main.class);
public static void main(String[] args) {
LOGGER.info("--- show this everytime");
if(LOGGER.isDebugEnabled()) {
LOGGER.debug("--- show this only if debug is enable");
}
LOGGER.info("--- show this everytime");
}
所以我的问题是,我不知道如何 on/off 不同的日志级别(信息、调试、错误、跟踪、警告)。我阅读了有关创建配置文件或 xml 文件的信息,但我不知道将这些文件放在 EJB 项目中的何处。
有没有办法像这样配置它?
LOGGER.setLevel("info");
我找到了解决方案。我可以使用以下行更改日志记录级别:
System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "Info");
我还必须将 slf4j-api-1.7.25.jar 和 slf4j-simple-1.7.25.jar 添加到构建路径并将罐子添加到 glassfish 库.
完整的代码如下所示:
import org.slf4j.LoggerFactory;
public class main {
public static void main(String[] args) {
System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "Info");
final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(LogTest.class);
LOGGER.info("--- show this everytime");
if(LOGGER.isDebugEnabled()) {
LOGGER.debug("--- show this only if debug is enable");
}
LOGGER.info("--- show this everytime");
}
.properties
文件
你说:
I read about create a config-file or xml-file, but I don't know where to put these files in a EJB-Project.
您可以为您的记录器创建一个 .properties
文件。该文件必须适当地出现在类路径中。
在一个由 Maven 驱动的基于 Servlet 的项目(一个 Vaadin 14 项目)中,我放置了一个包含此内容的 simplelogger.properties
文件(Atmosphere Vaadin 使用的库)用于 SimpleLogger 实现:
org.slf4j.simpleLogger.defaultLogLevel = error
org.slf4j.simpleLogger.log.org.atmosphere = warn
…在我的 IntelliJ 项目的 resources
文件夹中。
在构建时创建的 target
中,此文件出现在:myProjectName
> WEB-INF
> classes
> simplelogger.properties
.
该项目针对 web container,例如 Eclipse Jetty 或 Apache Tomcat。我不使用像 Glassfish 这样的完整 EJB 服务器。不确定这是否对您有帮助,但可能会给您一些线索。
我在 glassfish 3.1.2 服务器上的 Java EJB 项目 运行 中使用 org.slf4j.Logger。
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class main {
private static final Logger LOGGER = LoggerFactory.getLogger(main.class);
public static void main(String[] args) {
LOGGER.info("--- show this everytime");
if(LOGGER.isDebugEnabled()) {
LOGGER.debug("--- show this only if debug is enable");
}
LOGGER.info("--- show this everytime");
}
所以我的问题是,我不知道如何 on/off 不同的日志级别(信息、调试、错误、跟踪、警告)。我阅读了有关创建配置文件或 xml 文件的信息,但我不知道将这些文件放在 EJB 项目中的何处。 有没有办法像这样配置它?
LOGGER.setLevel("info");
我找到了解决方案。我可以使用以下行更改日志记录级别:
System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "Info");
我还必须将 slf4j-api-1.7.25.jar 和 slf4j-simple-1.7.25.jar 添加到构建路径并将罐子添加到 glassfish 库.
完整的代码如下所示:
import org.slf4j.LoggerFactory;
public class main {
public static void main(String[] args) {
System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "Info");
final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(LogTest.class);
LOGGER.info("--- show this everytime");
if(LOGGER.isDebugEnabled()) {
LOGGER.debug("--- show this only if debug is enable");
}
LOGGER.info("--- show this everytime");
}
.properties
文件
你说:
I read about create a config-file or xml-file, but I don't know where to put these files in a EJB-Project.
您可以为您的记录器创建一个 .properties
文件。该文件必须适当地出现在类路径中。
在一个由 Maven 驱动的基于 Servlet 的项目(一个 Vaadin 14 项目)中,我放置了一个包含此内容的 simplelogger.properties
文件(Atmosphere Vaadin 使用的库)用于 SimpleLogger 实现:
org.slf4j.simpleLogger.defaultLogLevel = error
org.slf4j.simpleLogger.log.org.atmosphere = warn
…在我的 IntelliJ 项目的 resources
文件夹中。
在构建时创建的 target
中,此文件出现在:myProjectName
> WEB-INF
> classes
> simplelogger.properties
.
该项目针对 web container,例如 Eclipse Jetty 或 Apache Tomcat。我不使用像 Glassfish 这样的完整 EJB 服务器。不确定这是否对您有帮助,但可能会给您一些线索。