如何在 Adob​​e CQ5 项目中使用和配置 logback?

How to use and configure logback in Adobe CQ5 projects?

我是CQ5新手。我在 CQ 中开始了我的第一个项目,我想将项目组件、服务和 servlet(捆绑包)的任何异常和调试信息写入 crx-repo 中的日志文件(...\crx-quickstart\logs) .

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

我尝试了以下步骤:

  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 配置(记录器和附加器)到 项目的bundle资源包。

  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");
         ......
      }
    

这些步骤(这当然行不通)我举了一个例子,因为我不知道在 Adob​​e 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