Logj ()是一個開源代碼的項目(Open source project)它使開發人員能最大限度的靈活控制程序調試信息的輸出這一點它是通過額外的配置文件實現的
JDBMonitor()是一個開源項目使用它開發者可以很輕松為系統增加數據庫執行日志功能它使用十分方便您所需要做的唯一事情就是在您系統的JDBC連接字符串前增加類似於 listenerconfig=/configxml:url= 的字符即可不用寫任何代碼使用 JDBMonitor您可以把數據庫執行情況記錄通過各種方式記錄下來比如打印到控制台輸出到文件或者通過socket傳送給遠程客戶端
共同點
Logj和JDBMonitor都有很強的可擴展性例如Logj可以寫自己的AppenderJDBMonitor可以寫自己的DBListener
Logj和JDBMonitor都很容易配置當然Logj配置文件相對復雜
不同點
Logj能為各種事件進行日志輸出比如關鍵操作運行中的變量值數據庫語句日志等而JDBMonitor只能記錄數據庫sql語句操作記錄所以說Logj應用范圍更廣如果您需要記錄非數據庫語句日志就要使用LogjJDBMonitor則無能為力
Logj配置比較靈活比如可以配置什麼等級的日志被記錄記錄的格式是什麼樣的日志文件到多大的時候被轉儲而JDBMonitor則相對較不靈活輸出格式比較單一而且無法指定那些日志可以被忽略
Logj是侵入式的所有的日志操作都是寫在業務代碼之中的缺點是很明顯的這導致業務代碼中摻雜大量的日志輸出代碼降低了代碼的可讀性而且一旦想去掉日志功能以後必須逐個刪除代碼加大了工作量和風險JDBMonitor是非侵入式的它采用代理模式攔截對數據庫的調用然後對進行日志記錄業務系統中根本不用摻雜日志代碼只要修改JDBC連接字符串即可如果想去掉日志功能只要將JDBC連接字符串修改回去即可
Logj采用的日志記錄實現方式會對程序的運行速度有一定影響在日志比較多的時候甚至會導致整個程序慢到無法忍受而JDBMonitor則另起一個線程來記錄SQL所以它幾乎不會對程序運行速度有任何影響
Logj的Appender不適合進行調試開發調試開發只有那個控制台Appender可以用但是在大數據量的時候整個屏幕狂刷不止根本看不清而且很多操作系統的控制台(比如windows的)都有緩沖區大小限制所以很容易造成想看的sql日志被沖掉看不到了而Logj的不僅有與Logj類似的控制台Appender可以用而且有一個客戶端SocketSwingClient可以用這個客戶端類似SQLServer的事件監聽器容納的日志量相當大而且可以自由控制日志的上下滾動
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19802.html