我想在我的应用程序(Spring集成)中有两个日志文件,debug.log和main.log。我想在INFO级别运行main.log,在DEBUG级别运行debug.log。这可以通过appenders上的过滤器来实现。我想根据源将不同级别记录到附加程序。换句话说总结一下:Spring记录器主要->错误调试->调试com.myapp记录器主要->信息调试->调试因此,我必须让记录器在DEBUG运行,并且附加程序上的阈值过滤器不够细。更新使问题更加清晰 最佳答案 创建一个ThresholdLoggerFilter类,该类可以放在app
我阅读了一些关于如何使用log4j的文章。他们中的大多数以下面的代码作为开始:Loggerlogger=Logger.getLogger("com.foo.Bar");或Loggerlogger=Logger.getLogger(XXX.class);这将初始化记录器对象。但我的问题是为什么需要发送类类型作为参数?似乎当我使用记录器时,我不在乎我在哪个类中使用它。所以类类型似乎对记录器没有影响。如果我将一个记录器声明为静态和公共(public)的,我可以在另一个类中调用这个记录器,那么作者这样设计它的意图是什么?当我使用记录器时,Class类型会绑定(bind)一些东西吗?或者我可以将
我阅读了一些关于如何使用log4j的文章。他们中的大多数以下面的代码作为开始:Loggerlogger=Logger.getLogger("com.foo.Bar");或Loggerlogger=Logger.getLogger(XXX.class);这将初始化记录器对象。但我的问题是为什么需要发送类类型作为参数?似乎当我使用记录器时,我不在乎我在哪个类中使用它。所以类类型似乎对记录器没有影响。如果我将一个记录器声明为静态和公共(public)的,我可以在另一个类中调用这个记录器,那么作者这样设计它的意图是什么?当我使用记录器时,Class类型会绑定(bind)一些东西吗?或者我可以将
我决定将Log4J日志框架用于一个新的Java项目。我想知道我应该使用什么策略来创建/管理Logger实例,为什么?每个类一个Logger实例例如classFoo{privatestaticfinalLoggerlog=Logger.getLogger(Foo.class);}每个线程一个Logger实例每个应用程序一个Logger实例水平切片:应用程序的每一层(例如View层、Controller层和持久层)中都有一个Logger实例垂直切片:应用程序功能分区内的一个Logger实例注意:这些文章已经在一定程度上考虑了这个问题:WhatstheoverheadofcreatingaL
我决定将Log4J日志框架用于一个新的Java项目。我想知道我应该使用什么策略来创建/管理Logger实例,为什么?每个类一个Logger实例例如classFoo{privatestaticfinalLoggerlog=Logger.getLogger(Foo.class);}每个线程一个Logger实例每个应用程序一个Logger实例水平切片:应用程序的每一层(例如View层、Controller层和持久层)中都有一个Logger实例垂直切片:应用程序功能分区内的一个Logger实例注意:这些文章已经在一定程度上考虑了这个问题:WhatstheoverheadofcreatingaL
我们有很多类代码,其中有一些样板,如下所示:privatestaticLoggerlogger=null;privatestaticLoggergetLogger(){if(logger==null){logger=Logger.getLogger(MyClass.class);}returnlogger;}这个想法是类可以将调试内容记录到记录器中。需要记录某些内容的第一个代码调用getLogger()并使记录器存在。这个模式有几点我不喜欢。首先,单例getLogger()未同步并同步它,而正确会无缘无故地给每个后续调用带来负担。我真的很想把它浓缩成这样:privatestaticfi
当访问来自特定包的类的方法时,我无法让我的日志记录方面记录信息。换句话说,发生“无”日志记录。我什至绝望并添加了System.out.println语句,但没有运气。我所有的类都位于org.my.package包下,即org.my.package.controller、org.my.package。型号等这是我的应用程序类:packageorg.my.package;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.EnableAutoConfigu
当访问来自特定包的类的方法时,我无法让我的日志记录方面记录信息。换句话说,发生“无”日志记录。我什至绝望并添加了System.out.println语句,但没有运气。我所有的类都位于org.my.package包下,即org.my.package.controller、org.my.package。型号等这是我的应用程序类:packageorg.my.package;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.EnableAutoConfigu
我正在使用org.slf4j.Logger来记录输出。输出将用于控制台。如何将日志记录记录到日志文件中?privatestaticfinalLoggerLOG=LoggerFactory.getLogger(ClassName.class);LOG.info("Loggingoutputtoconsole");我没有使用log4j.properties文件。我假设我需要一个。我添加了以下log4j.properties文件并将其放置在我的eclipse项目的不同部分。#Definethefileappenderlog4j.appender.FileAppender=org.apache
我正在使用带有aspect-j注释支持的spring,以允许@Loggable注释。这允许根据配置自动记录类。我想知道是否可以以某种方式使用此注释将slf4jLogger变量公开到类中以供直接使用,这样我就不必做以下事情:Loggerlogger=LoggerFactory.getLogger(MyClass.class);如果上面由于注释而隐式可用,那就太好了,我可以在没有声明的情况下继续执行logger.debug("...");。我不确定这是否可能。 最佳答案 您可以使用BeanPostProcessor接口(interfac