我正在从事一个使用SLF4J+日志返回的项目,我希望找到一种方法,通过使用REST API调用来配置不同作用域的日志级别。调用接收具有作用域(类、包或根路径)和所需日志记录级别的对象。我的项目中具有记录器的每个类都使用静态日志记录程序。
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
Logger target = loggerContext.getLogger(DESIRED_CLASS_PATH);
target.setLevel(DESIRED_LOGGING_LEVEL);
Logger rootLogger = loggerContext.getLogger(Logger.ROOT_LOGGER_NAME);
rootLogger.setLevel(DESIRED_LOGGING_LEVEL);
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</layout>
</appender>
<root level="info">
<appender-ref ref="STDOUT"/>
</root>
<logger name="my.uppermost.package" level="info" additivity="false">
<appender-ref ref="STDOUT"/>
</logger>
</configuration>
您可以获取现有记录器的列表,并按名称筛选它们:
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
for(logger : loggerContext.getLoggerList()) {
if(logger.getName().startWith("my.target.package.")) {
logger.setLevel(DESIRED_LOGGING_LEVEL);
}
}
请注意,它将只更改已经存在的记录器的日志级别。如果my.target.package中的某个对象稍后注册了记录器,其日志级别将是logback.xml中配置的任何级别
使用java.util.Logging时,可以在logging.properties文件中配置特定类的日志级别(即具有类名称的子记录器),如下所示: 我使用类名在MyClass中创建子记录器,如下所示: 在Google Web Toolkit gwt.xml文件中有类似的配置方法吗?
我有一个应用程序在tomcat6 servlet容器中运行,使用slf4j和log4j,尽管切换到logback是迫在眉睫的。 应用程序大量使用hibernate,目前我们需要打开hibernate SQL日志记录。 这可行吗?
我的应用程序登录到控制台和文件(log4net 1.2.11):
我一直在尝试更改用户日志的日志级别,即出现在
我目前正在尝试降低我在java项目中使用的PDFBox 1.8.6库的日志记录级别,但失败了。基于前面的问题,我在 /src/目录中有以下log4j.properties文件。 我不确定我还遗漏了什么,因为我仍然在控制台中收到类似以下消息的垃圾邮件。 如果有一种方法可以通过编程方式更改日志级别,那么我根本不会附加到属性文件,因为我在其他任何地方都不使用log4j。我不知道它是否使用log4j。属性