Log 4 j操作データベース
まず最初に見たのはプロファイルです.このプロファイルは一般的にsrcのルートディレクトリの下に配置されます.Webエンジニアリングでもそうです.
下のlog 4 jはコンソールに印刷されています(本人はMyEclipse 7.5を使用しています)
log4j.properties#はレベルを設定ことができる:debug>info>error#debug:debug、info、error#infoを表示:infoを表示、error#error:error log 4 jのみを表示する.rootLogger=debug,appender1 #log4j.rootLogger=info,appender1 #log4j.rootLogger=error,appender 1#はコンソールlog 4 jに出力.appender.appender1=org.apache.log4j.ConsoleAppender#スタイルはTTCCLayout log 4 j.appender.appender1.layout=org.apache.log4j.TTCCLayout
Testクラスでprivate static Logger=Logger.getLogger(UserDAO.class); public static void main(String[]args){logger.warn("操作");//logger.info("INFO");//logger.debug("Debug");//logger.error("操作");}
これでコンテンツがコンソールに印刷されます.
データベースに保存
このときlog 4 jに記録された操作をデータベースに格納する
まずlog 4 jを構成する.properties log4j.rootLogger=INFO,DATABASE#はlog 4 jパッケージのファイルlog 4 jを直接使用する.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender log4j.addivity.org.apache=true#データベースとの接続log 4 j.appender.DATABASE.driver=ドライバ名log 4 j.appender.DATABASE.URL=データベースに接続するurl log 4 j.appender.DATABASE.user=ユーザlog 4 j.appender.DATABASE.password=パスワード#データベースに挿入するフォーマットを指定します.具体的なパラメータのフォーマットは、最初に与えるドキュメント#%pレベル%Cパッケージ名%Mメソッド名%Lの位置、行数%m情報log 4 jを参照してください.appender.DATABASE.sql=INSERT INTO log4j (log_date, log_level, location, message) VALUES ('%d{yyyy-MM-dd HH:mm:ss}', '%p', '%C,%M,%L', '%m') #log4j.appender.DATABASE.layout.ConversionPattern=%d %c %p %m%n log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
これで配置できました.
そして上のテストクラスでテストしてOKです.
log 4 jというテーブルが確立されていることが前提です.
特に強調しますが、このコードをコピーした後、jarパッケージをインポートし、sql文のチェックも問題なく、プロファイルはすべて正常です.
しかし、やはり間違っています.log 4 j:ERROR Failed to load driver(ロードドライバに失敗)、log 4 j:ERROR Failed to excute sql(sql実行に失敗)のようなエラーです.
この問題はかなり幼稚だ.その過程で、いくつかのスペースもコピーされたからです.
そしてlog 4 jは、ロード構成の同僚でもスペースを認識し、スペースもロードする可能性があります.エラーを引き起こす.
だから気をつけて.
下のlog 4 jはコンソールに印刷されています(本人はMyEclipse 7.5を使用しています)
log4j.properties#はレベルを設定ことができる:debug>info>error#debug:debug、info、error#infoを表示:infoを表示、error#error:error log 4 jのみを表示する.rootLogger=debug,appender1 #log4j.rootLogger=info,appender1 #log4j.rootLogger=error,appender 1#はコンソールlog 4 jに出力.appender.appender1=org.apache.log4j.ConsoleAppender#スタイルはTTCCLayout log 4 j.appender.appender1.layout=org.apache.log4j.TTCCLayout
Testクラスでprivate static Logger=Logger.getLogger(UserDAO.class); public static void main(String[]args){logger.warn("操作");//logger.info("INFO");//logger.debug("Debug");//logger.error("操作");}
これでコンテンツがコンソールに印刷されます.
データベースに保存
このときlog 4 jに記録された操作をデータベースに格納する
まずlog 4 jを構成する.properties log4j.rootLogger=INFO,DATABASE#はlog 4 jパッケージのファイルlog 4 jを直接使用する.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender log4j.addivity.org.apache=true#データベースとの接続log 4 j.appender.DATABASE.driver=ドライバ名log 4 j.appender.DATABASE.URL=データベースに接続するurl log 4 j.appender.DATABASE.user=ユーザlog 4 j.appender.DATABASE.password=パスワード#データベースに挿入するフォーマットを指定します.具体的なパラメータのフォーマットは、最初に与えるドキュメント#%pレベル%Cパッケージ名%Mメソッド名%Lの位置、行数%m情報log 4 jを参照してください.appender.DATABASE.sql=INSERT INTO log4j (log_date, log_level, location, message) VALUES ('%d{yyyy-MM-dd HH:mm:ss}', '%p', '%C,%M,%L', '%m') #log4j.appender.DATABASE.layout.ConversionPattern=%d %c %p %m%n log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
これで配置できました.
そして上のテストクラスでテストしてOKです.
log 4 jというテーブルが確立されていることが前提です.
特に強調しますが、このコードをコピーした後、jarパッケージをインポートし、sql文のチェックも問題なく、プロファイルはすべて正常です.
しかし、やはり間違っています.log 4 j:ERROR Failed to load driver(ロードドライバに失敗)、log 4 j:ERROR Failed to excute sql(sql実行に失敗)のようなエラーです.
この問題はかなり幼稚だ.その過程で、いくつかのスペースもコピーされたからです.
そしてlog 4 jは、ロード構成の同僚でもスペースを認識し、スペースもロードする可能性があります.エラーを引き起こす.
だから気をつけて.