Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为Maven/Ant/命令行工具实现统一日志记录?_Maven_Logging_Ant_Slf4j_Command Line Interface - Fatal编程技术网

如何为Maven/Ant/命令行工具实现统一日志记录?

如何为Maven/Ant/命令行工具实现统一日志记录?,maven,logging,ant,slf4j,command-line-interface,Maven,Logging,Ant,Slf4j,Command Line Interface,我开发了一个代码生成工具,可以 从命令行调用 通过蚂蚁任务使用 通过Maven插件使用 也许还会有更多 为了使代码生成可以跟踪到最终用户(“现在发生了什么?”),我想输出日志语句。它们将处于从跟踪到致命错误的不同级别,因此通常只是普通的标准日志记录 但是,我希望使用宿主构建工具的日志功能输出我的语句 Maven为插件提供了一个日志接口 CLI没有 我已经很久没有编写Ant任务了,但我认为还有一个用于日志记录的接口 我的想法是在我的工具中使用类似SLF4J的东西作为日志API,然后以某种方

我开发了一个代码生成工具,可以

  • 从命令行调用
  • 通过蚂蚁任务使用
  • 通过Maven插件使用
  • 也许还会有更多
为了使代码生成可以跟踪到最终用户(“现在发生了什么?”),我想输出日志语句。它们将处于从跟踪到致命错误的不同级别,因此通常只是普通的标准日志记录

但是,我希望使用宿主构建工具的日志功能输出我的语句

  • Maven为插件提供了一个日志接口
  • CLI没有
  • 我已经很久没有编写Ant任务了,但我认为还有一个用于日志记录的接口
我的想法是在我的工具中使用类似SLF4J的东西作为日志API,然后以某种方式将日志消息“重定向”到宿主构建工具或直接重定向到控制台,但目前我不知道如何实现这一点。我也猜我在这里遗漏了一些片段

基本上,我的问题是,我应该进一步研究哪个方向

  • 我是否还需要
    log4j
    logback
  • appender
    是我应该关注的正确概念吗
  • 我是否必须为每个托管工具实现、创建和配置appender
  • 我应该在运行时这样做,还是可以通过某种方式进行配置
      • 编写一个简单的日志接口,抽象出不同工具的所有特性。您可能会受到其他日志框架(slf4j、log4j 2.0)的启发 e、 g:

      • 在每个插件/工具中,执行以下操作
        • 实例化特定于工具的记录器,或使用插件提供的记录器(在CLI的情况下,使用您选择的记录器(log4j、slf4j,…)
        • 创建一个代理来实现您的日志接口,该接口将委托给特定于工具的记录器
        • 将记录器插入代码生成工具

      对于Maven CLI,请看这里:是的,我认为这是一条路要走。谢谢!
      public interface Mylogger {
          void debug(String msg, Object... args);
          void info(String msg, Object... args);
          //...
      }