簡體   English   中英

如何更改 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");
}

所以我的問題是,我不知道如何打開/關閉不同的日志級別(信息、調試、錯誤、跟蹤、警告)。 我閱讀了有關創建配置文件或 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文件

你說:

我閱讀了有關創建配置文件或 xml 文件的信息,但我不知道將這些文件放在 EJB 項目中的何處。

您可以為記錄器創建一個.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 容器,例如 Eclipse Jetty 或 Apache Tomcat。 我不使用像 Glassfish 這樣的完整 EJB 服務器。 不確定這是否對你有幫助,但可能會給你一個線索。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM