2017-07-27 50 views
0

我在Tomcat上使用Mark W. Shead的10分钟演示(链接从here可见),它工作正常。直接链接到源代码是here挂毯5,登录不是页面

我想把一些日志记录到不是页面类的类。例如,.services.AppModule类。

在挂毯文档它有一个页面类像这样的例子:

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); 

此运行,但我没有得到任何消息。

任何想法?谢谢!

+0

@Kohei TAMURA感谢您清理我的问题。我无法得到它为我工作,所以我说:“f - 它,无论如何发布的问题,也许有人会帮助。 – ssimm

+0

你能告诉我们更多的细节?eg什么注入你进口弹簧或挂毯? – LakiGeri

+0

@LakiGeri我使用Tapestry注入我在问题中添加了源代码的链接(而不是链接的链接)除了这个问题,我没有对此代码进行任何修改 – ssimm

回答

1

你应该试试这个:

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

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

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

+0

我喜欢“tapestry-project init logger “想法:你能在你的答案中加入一些代码或伪代码吗?谢谢! – ssimm

+0

第一个问题,你是否做了log4j属性文件? – LakiGeri

+0

老实说,我不知道是什么原因导致这个问题..我从来没有遇到过这样的问题,我只是给你一个建议,我会怎么做 – LakiGeri