我刚刚开始使用Seam Solder,他们的日志模块看起来很有趣http://docs.jboss.org/seam/3/solder/latest/reference/en-US/html/logging.html
请参阅我的测试示例的帖子底部的代码。
尝试使用它时出现了一些问题:
@Inject Logger log
,看起来很简单,但在部署时抛出异常:org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Logger] with qualifiers [@Default] at injection point [[field] @Inject com.company.application.controller.SessionController.log]
@LogMessage
注释。我的猜测是它被重命名为@Log
,因为这似乎有效。为了能够使用所有常规方法(信息,警告,错误等),让日志界面扩展BasicLogger
似乎很容易,但是这个界面似乎没有被正确注释,所以当这些界面没有实际记录时调用方法(调用处理程序检查@Message
注释并找不到)。我做错了什么或框架真的没有完成?在开发几个月内投入生产的系统时,我是否应该坚持使用正常的log4j?接口
@MessageLogger
public interface SessionLogger extends BasicLogger{
@Message("User %s logged in. Redirecting to %s.")
@Log(level= Level.INFO)
void login(String username, String to);
@Message("User %s logged out.")
void logout(String username);
}
用法
@Inject SessionLogger log
...
log.login("username", "url");
答案 0 :(得分:1)
确保您正在进行的注释是Solder Annotations,而不是通用注释。
答案 1 :(得分:0)
您的问题看起来像是Seam Solder中包含的类的依赖性问题。你确定依赖是否满足?
<dependency>
<groupId>org.jboss.seam.solder</groupId>
<artifactId>seam-solder</artifactId>
<version>${version.seam}</version>
</dependency>