这是部署到 JBoss 上的“ war ”。它公开了具有多种功能的 SOAP Web 服务。
我们怎样才能有func1()
记录为 INFO
水平,而 funk2()
具有不同级别,如 DEBUG
?该级别应该影响线程中从函数开始到函数结束的所有内容。
日志记录级别现在通过 JBoss Web 控制台“按包”进行管理。在我的例子中,运行时也需要类似的配置。
Java、Spring 4、JBoss EAP 6.4.x、logback 1.1.3
最佳答案
一般来说,如果您想对不同的方法使用不同的记录器级别,那么将方法放在不同的类中可能不会那么困惑,然后您可以对每个类使用记录器的“传统”方法设置为您想要的级别。
但是如果你想在一个类中拥有多个不同级别的日志功能,你需要为它们使用不同的记录器。虽然标准方法是每个类一个记录器(记录器以类命名),但如果您需要不同的设置,则只需要多个记录器(具有不同的名称)。
尝试这样的事情:
public class MyClass {
private static final Logger func1logger = LoggerFactory.getLogger("test.example.MyClass.func1");
private static final Logger func2logger = LoggerFactory.getLogger("test.example.MyClass.func2");
public void func1() {
func1logger.debug("func1 log");
}
public void func2() {
func2logger.debug("func2 log");
}
}
然后您应该能够独立设置两个记录器的日志记录级别。也就是说,虽然标准约定是记录器的名称完全是类的名称,但这只是一个(有用!)约定,但如果您的要求不同,则不需要完全遵循它。
关于java - 独立管理每个 WebService 方法的日志记录级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37140188/