2015-05-27 28 views
2

我是CQ5的新手。我开始在CQ中开发我的第一个项目,并且我想编写项目组件,服务和servlet(捆绑包)中的任何异常和调试信息以便在crx-repo(... \ crx-quickstart \ logs)中记录文件。如何在Adobe CQ5项目中使用和配置logback?

我想在我的项目中使用slf4j和logback实现。

我尝试下面的步骤:

  1. 添加依赖于项目的pom.xml

    <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> 
    
  2. 添加与配置(记录仪和追加程序),以 项目的包资源包logback.xml。

  3. 尝试在服务实例的新记录(例如):

    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。 有什么建议吗?我会很感激任何帮助!

回答

0

CQ使用其默认配置登录到crx-quickstart/logs/error.log,底层Apache Sling框架提供必要的桥接,因此您只需获取slf4j Logger并写入该桥。

您的SomeService示例的Java代码看起来正确,但在pom中,您只需要slf4j-api依赖项,范围为provided,因为API运行时提供了API和实现包。

您也可以看看Sling样本,如Slingbucks,如果安装在默认的CQ实例上,它将记录到error.log

相关问题