在Spring中如何配置java.util.Logging以便它可以自动装配?

时间:2011-06-14 21:00:06

标签: spring tomcat logging autowired java.util.logging

在我们的webapp中,我们使用java.util.Logging(JULI,实际上,因为我们部署到Tomcat 6)。日志记录由WEB-INF / classes中的logging.properties文件配置,la this

我想配置记录器,以便它可以自动装配,例如:

@Autowired
private Logger mylogger;

我搜索过Spring论坛,网络,当然还有Stack Overflow,我找不到如何设置它。我对此表示感谢。

谢谢!

3 个答案:

答案 0 :(得分:3)

一种方法是使用Java Config style,所以你有一个像这样的bean:

@Configuration
public class LoggerProvider {
    @Bean
    public Logger logger() {
        return Logger.getLogger("foobar.whatever");
    }
}

然后可以正常地将其自动连接到应用程序的其余部分。

答案 1 :(得分:2)

为了在某个东西(豆子)上使用@Autowired,你必须让那个豆子受到弹簧控制。有很多方法可以做到这一点,它们依赖于你想要使用的日志框架。

我担心没有'一刀切'的解决方案。

通常,您将使用由您选择的日志框架提供的静态初始化程序或对其进行抽象(例如,公共日志记录)。

我找到了一个引用@Logger注释的引用,可能会指向你喜欢的方向:

http://jgeeks.blogspot.com/2008/10/auto-injection-of-logger-into-spring.html

答案 2 :(得分:1)

为了使Logger可以注入@Autowired,您必须拥有一个配置类,您可以在其中配置使用@Configuration的所有Bean。该课程将标有@Bean。在那里,您必须在配置中添加以下@Configuration public class WebConfiguration { @Bean @Scope("prototype") public Logger produceLogger(InjectionPoint injectionPoint) { Class<?> classOnWired = injectionPoint.getMember().getDeclaringClass(); return LoggerFactory.getLogger(classOnWired); } }

_DEBUG