2014-10-11 51 views
0

我開發一種代碼生成工具可以是如何爲Maven/Ant /命令行工具實現統一日誌記錄?

  • 從通過經由一個Maven插件
  • 使用的Ant任務
  • 使用也許更多來命令行
  • 調用。

爲了使代碼生成可以追蹤到最終用戶(「現在發生了什麼?」),我想輸出日誌語句。它們將處於不同的級別,從追蹤到致命錯誤,所以通常它只是簡單的標準日誌記錄。

但是,我想使用主機構建工具的日誌功能輸出我的語句。

  • Maven爲插件提供了一個日誌記錄界面。
  • CLI沒有。
  • 我還沒有寫好年齡的Ant任務,但我認爲還有一個日誌記錄界面。

我的想法是使用類似SLF4J作爲我的工具日誌API,然後以某種方式「重定向」消息記錄到主機構建工具或直接到控制檯,但我不知道如何實現這個在這一刻。我也猜想我在這裏錯過了一些片段。

我的問題基本上是我應該進一步調查的方向。

  • 我還需要log4jlogback
  • appender我應該關注的正確概念?
  • 我是否必須爲每個託管工具實施,創建和配置appender?
  • 我應該在運行時執行此操作還是可以以某種方式配置?
+1

http://ant.apache.org/manual/listeners.html – 2014-10-11 12:21:09

+2

Maven的CLI看看這裏:http://maven.apache.org/maven-logging.html – khmarbaise 2014-10-11 13:16:19

回答

1
  • 寫一個簡單的日誌接口抽象的不同工具的所有特色。您可以通過其他日誌框架(SLF4J,log4j的2.0)得到啓發 如:

    public interface Mylogger { 
        void debug(String msg, Object... args); 
        void info(String msg, Object... args); 
        //... 
    } 
    
  • 每個插件
  • /工具做以下
    • 實例化工具的具體記錄,或者使用提供給您的插件之一(CLI中的情況下,使用您的選擇(log4j的,SLF4J,的記錄...)
    • 創建一個代理實現你的日誌接口委託給特定的工具記錄
    • 注入記錄到你的代碼生成工具
+0

是的,我認爲這是要走的路。謝謝! – lexicore 2014-11-27 10:01:10