【问题标题】:How to use and configure logback in Adobe CQ5 projects?如何在 Adob​​e CQ5 项目中使用和配置 logback?
【发布时间】:2015-05-27 16:31:39
【问题描述】:

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

我想在我的项目中使用带有 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。 有什么建议吗?如果有任何帮助,我将不胜感激!

【问题讨论】:

    标签: java aem logback


    【解决方案1】:

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

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

    您还可以查看像 Slingbucks 这样的 Sling 示例,如果安装在默认 CQ 实例上,它将记录到该 error.log

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-14
      • 2013-01-15
      • 1970-01-01
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多