Tapestry 5,登录非页面

时间:2017-07-27 16:18:23

标签: java slf4j tapestry

我在Tomcat上使用Mark W. Shead的10分钟演示(链接在here上可见),它运行正常。源代码的直接链接是here

我想将一些日志记录放入非页面类的类中。例如,.services.AppModule类。

在Tapestry文档中,它有一个像这样的页面类的示例:

import org.apache.tapestry5.ioc.annotations.Inject;

public class MyPage
{
    @Inject
    private Logger logger;

    void onSuccessFromForm()
    {
        logger.info("Changes saved successfully");
    }

但是我不能让它适用于其他类,比如AppModule。 当我尝试使用日志时,我得到一个空指针异常。

我也试过这个:

@Inject
public static Logger logger = LoggerFactory.getLogger(AppModule.class);

这会运行,但我没有收到任何消息。

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

你应该试试这个:

public static Logger logger = LoggerFactory.getLogger(AppModule.class);

由于注入,我不应该初始化记录器,或者在没有注入的情况下初始化记录器

我认为问题在于记录器没有在春天或某个地方定义,这就是为什么挂毯不能只注入空引用。如果你想注入记录器,而不是创建记录器,你应该知道,为什么tapestry项目不会启动记录器。