下面是部署到jboss上的“war”。它公开了一个具有多个函数的soapweb服务。我们怎么可能 func1() 记录 INFO 水平,而 funk2() 有不同的层次,比如 DEBUG ? 级别应该影响线程中从函数开始到函数结束的所有内容。日志记录级别现在通过jbossweb控制台“按包”管理。在我的例子中也需要类似的运行时配置。java、spring 4、jboss eap 6.4.x、logback 1.1.3
func1()
INFO
funk2()
DEBUG
cig3rfwq1#
一般来说,如果您想对不同的方法使用不同的记录器级别,那么在不同的类中使用不同的方法可能会比较容易混淆,然后您可以使用记录器的“传统”方法将每个类设置为您想要的级别。但是,如果您希望在一个类日志中有多个不同级别的函数,则需要为它们使用不同的日志记录器。虽然标准方法是每个类一个记录器(记录器以类命名),但如果需要不同的设置,则只需要多个记录器(具有不同的名称)。尝试以下操作:
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"); } }
然后,您应该能够独立地为两个记录器设置日志记录级别。也就是说,虽然标准约定是记录器的名称正好是类的名称,但这只是一个(有用的!)但是如果你的要求不同,你不需要完全遵循它。
1条答案
按热度按时间cig3rfwq1#
一般来说,如果您想对不同的方法使用不同的记录器级别,那么在不同的类中使用不同的方法可能会比较容易混淆,然后您可以使用记录器的“传统”方法将每个类设置为您想要的级别。
但是,如果您希望在一个类日志中有多个不同级别的函数,则需要为它们使用不同的日志记录器。虽然标准方法是每个类一个记录器(记录器以类命名),但如果需要不同的设置,则只需要多个记录器(具有不同的名称)。
尝试以下操作:
然后,您应该能够独立地为两个记录器设置日志记录级别。也就是说,虽然标准约定是记录器的名称正好是类的名称,但这只是一个(有用的!)但是如果你的要求不同,你不需要完全遵循它。