Tapestry 5,登录非页面的 类

Tapestry 5, Logging in the classes that are not pages

我正在使用 Mark W. Shead 的 10 分钟演示(link 在 here) on Tomcat, and it works fine. The direct link to the source code is here

中可见

我想将一些日志记录到 classes 页面,而不是第 classes 页。例如,.services.AppModule class.

在 Tapestry 文档中,它有一个页面示例 class,如下所示:

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

public class MyPage
{
    @Inject
    private Logger logger;

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

但我无法让它为其他 classes 工作,比如 AppModule。 我尝试使用日志时出现空指针异常。

我也试过这个:

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

这可以运行,但我没有收到消息。

有什么想法吗?谢谢!

你应该试试这个:

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

因为注入,我不应该初始化记录器,或者你没有注入就初始化记录器

我认为问题在于记录器未在 spring 或某处定义,这就是挂毯不能仅注入空引用的原因。如果你想注入记录器,而不是创建它,你应该找出为什么挂毯项目不初始化记录器。