我是CQ5的新手。我在CQ开始了我的第一个项目,我希望将项目组件,服务和servlet(在bundle中)的任何异常和调试信息写入crx-repo(... \ crx-quickstart \ logs)中的日志文件。
我想在我的项目中使用slf4j和logback实现。
我试过以下步骤:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.3</version>
</dependency>
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
.....
@Component(metatype = true, label = "Some", description = "Sone service" ,
immediate = true)
@Service(SomeService.class)
public class SomeService {
private final Logger logger = LoggerFactory.getLogger(MyDao.class);
.....
logger.debug("debug");
logger.info("info");
logger.error("error");
......
}
这些步骤(当然不是工作)我举了一个例子,因为我不知道在Adobe CQ5中如何真正使用logback。有什么建议?我将不胜感激任何帮助!
CQ使用其默认配置登录到crx-quickstart/logs/error.log
,底层的Apache Sling框架提供了必要的桥接,因此您只需要获取slf4j Logger
并写入。
你的SomeService
示例的Java代码对我来说是正确的,但是在pom中你只需要slf4j-api
依赖,范围为provided
,因为API和实现包由CQ运行时提供。
您还可以查看像Slingbucks这样的Sling示例,如果安装在默认的CQ实例上,它将记录到error.log
。