ClojureでRESTサービス6を記述log 4 jを使用
2693 ワード
logbackはしばらく使えないので、ここではまずlog 4 jで押します.
project.cljファイルは以下の通りです.
log 4 jとtoolsが追加されましたlogging依存.
srcディレクトリの下にlog 4 jを追加します.propertiesファイル:
1行目のDEBUGとは、重大度がDEBUGより大きいものを指し、ログに記録されます.FILEはAppenderの名前で、後の行に/opt/webが配置されています.logファイルおよびログフォーマット.
server.cljファイル:
3行目にtoolsが導入されましたloogingは、infoとerrorのみの使用を許可するように設定されています.
-main関数の最初の行は必須です(org.apache.log 4 j.BasicConfigurator/configure).そうしないとlog 4 jがエラーを報告します.
その後(info...)ログを記録します.
ここでもう一つ問題があります.lein runはresources/log 4 jを使えません.propertiesファイルはtarget/classesディレクトリに自動的にコピーされるので、毎回手動でコピーします.
今lein runを実行して、/opt/webを見ます.logログ:
このブログhttp://www.paullegato.com/blog/log4j-clojure/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+clojure+(Planet+Clojure0
[null]の問題に言及します.しかし、ここではlog 4 jだけが必要だと気づきました.propertiesファイルでConversionPatternで[framework]を指定すると解決します.
project.cljファイルは以下の通りです.
(defproject my-website "0.1.0"
:description "example rest service"
:dependencies [[org.clojure/clojure "1.4.0"]
[com.novemberain/monger "1.4.1"]
[log4j/log4j "1.2.16" :exclusions [javax.mail/mail
javax.jms/jms
com.sun.jdmk/jmxtools
com.sun.jmx/jmxri]]
[org.clojure/tools.logging "0.2.4"]
[noir "1.3.0-beta3"]]
:main my-website.server)
log 4 jとtoolsが追加されましたlogging依存.
srcディレクトリの下にlog 4 jを追加します.propertiesファイル:
log4j.rootLogger=DEBUG, FILE
log4j.addivity.org.apache=true
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=/opt/web.log
log4j.appender.FILE.Append=false
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
1行目のDEBUGとは、重大度がDEBUGより大きいものを指し、ログに記録されます.FILEはAppenderの名前で、後の行に/opt/webが配置されています.logファイルおよびログフォーマット.
server.cljファイル:
(ns my-website.server
(:require [noir.server :as server])
(:use [clojure.tools.logging :only (info error)]))
(server/load-views-ns 'my-website.views)
(server/load-views-ns 'my-website.rest.test)
(defn -main [& m]
(org.apache.log4j.BasicConfigurator/configure)
(info "enter -main")
(let [mode (keyword (or (first m) :dev))
port (Integer. (get (System/getenv) "PORT" "8080"))]
(server/start port {:mode mode
:ns 'my-website})))
3行目にtoolsが導入されましたloogingは、infoとerrorのみの使用を許可するように設定されています.
-main関数の最初の行は必須です(org.apache.log 4 j.BasicConfigurator/configure).そうしないとlog 4 jがエラーを報告します.
その後(info...)ログを記録します.
ここでもう一つ問題があります.lein runはresources/log 4 jを使えません.propertiesファイルはtarget/classesディレクトリに自動的にコピーされるので、毎回手動でコピーします.
今lein runを実行して、/opt/webを見ます.logログ:
[framework] 2013-01-02 19:54:38,873 - my-website.server -0 [main] INFO my-website.server - enter -main
このブログhttp://www.paullegato.com/blog/log4j-clojure/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+clojure+(Planet+Clojure0
[null]の問題に言及します.しかし、ここではlog 4 jだけが必要だと気づきました.propertiesファイルでConversionPatternで[framework]を指定すると解決します.