ベストアンサー commons-logging log4jについて 2018/10/30 17:46 commons-logging log4jについてわかりやすい解説のurlを教えてください。 みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー Nobu-W ベストアンサー率39% (724/1831) 2018/10/30 18:57 回答No.1 既読済かもですが・・・ https://www.gwtcenter.com/easiest-way-of-commons-logging-log4j 簡単らしいです 私は解りません>< 参考URL: https://www.gwtcenter.com/easiest-way-of-commons-logging-log4j 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 1 カテゴリ [技術者向] コンピュータープログラミング・開発Java 関連するQ&A Commonsによるロギング いつもお世話になってます。 実は既存ソースを調査しているのですが、「Jakarta Commons」という ログ出力ライブラリを使用しているようです。 そこでこの「Commons」が「log4j」という別ライブラリを使用して いるか、確認する必要が出ています。 ※「log4j」と「Logging」で選択ができるようです この使用の有無はどこで判断すれば良いのでしょうか?。 既存ソースには「log4j.xml」というファイルはありました。 これで使用している、と判断して良いでしょうか?。 また「Logging」と「log4j」の違いが良くわかりません・・。 簡単で結構ですので、違いの概要を併せて頂けますと助かります。 よろしくお願いします。 iptablesのログ記述について http://www.atmarkit.co.jp/flinux/rensai/iptables01/template01.html を参考に勉強しなおしているのですが iptables -N LOGGING iptables -A LOGGING -j LOG --log-level warning --log-prefix "DROP:" -m limit iptables -A LOGGING -j DROP iptables -A INPUT -j LOGGING iptables -A OUTPUT -j LOGGING の内容でわからないことがあります。 一番下の3行 一.iptables -A INPUT -j LOGGING 二.iptables -A OUTPUT -j LOGGING 三.iptables -A LOGGING -j DROP 一.無効パケットの破棄(DROP)を指定し、ログ出力の後に破棄されるようにします。 二.INPUTおよびOUTPUTチェインに対し、このLOGGINGが行われるように設定します。 この二つの意味の違いがよくわからないのです。 一は「パケット廃棄→ログ出力」の流れは分かるのですが、 二は、「INPUT処理、OUTPUT処理」→「ログ出力?」 同じ処理ではないのでしょうか? ということですと、 「一と二で同じ処理をするのに、 LOGGINGのチェインの位置が変わっている」のはなぜなのでしょうか? とわからなくなっています。 ご教授お願いします。 log4jのレベルをdebugにすると大量のdigesterログが出力されます お世話になります。 現在、tomcat5.5でservletを動作させています。動作ログ(デバッグレベル)を出力させるためにorg.apache.commons.logging.impl.Log4JLoggerを使用しています。 ところがlog4j.xmlの設定で出力レベルを"debug"とするとdigesterやConvertUtilBeanなどのデバッグレベルログが勝手に出力されてしまい、本来出力させたいデバッグログが埋もれてしまいます。 これらの不要なデバッグレベルログを抑制する方法をご存じの方よろしくお願いいたします。 以下、log4j.xmlです(抜粋) <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> <appender name="stdout" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p (%F:%L) - %m%n" /> </layout> </appender> <appender name="fileAppender" class="org.apache.log4j.DailyRollingFileAppender"> <param name="File" value="log/trace.log"/> <param name="Append" value="true" /> <param name="DatePattern" value="'.'yyyy-MM-dd"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p (%F:%L) - %m%n" /> </layout> </appender> <category name="sample"> <priority value="trace"/> </category> <root> <priority value="trace" /> <appender-ref ref="stdout" /> <appender-ref ref="fileAppender" /> </root> ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム log4jについて log4jというのを使ってログをeclipseのコンソールに出そうと、 log4j.rootCategory=DEBUG, CONSOLE log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Threshold=DEBUG log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss.SSS} %-5p|(%F#%M:%L) %n としました。 ですが、ログが 2005/01/11 14:59:40.792 INFO |(?#info:?) となって%Fと%Lが出力されてません。 原因として何が考えられるでしょうか? また、対応策はどうしたらよいでしょうか? Log4Jでの日付毎のログについて Log4Jを用いて、日付毎のログを取ろうと思っております。 具体的には、テキストエディター上で変更があった際に、その都度、その内容をログに取りたいのですが、DailyRollingFileAppenderの場合、その日のログは次の日になったときに出力されてしまいます。 これをLog4Jでやることは可能なのでしょうか? また、Log4Jより容易にできるものがありますでしょうか? よろしくお願いいたします。 Antでコンパイルするとログの一部が文字化けする commons-loggingを利用してログを出力した時に、eclipseでコンパイルすると 問題なくログは出力されますが、Antでコンパイル後に実行するとログの一部が 下記のように化けます。なにが原因なのでしょうか? ご享受頂ければ幸いです。 よろしくお願いします。 Antでコンパイル:2003-12-19 19:28:32,439 DEBUG [main] test ( ?:?) - 起動0 eclipseでコンパイル:2003-12-19 19:26:49,060 DEBUG [main] test ( test.java:222) - 起動0 log4jの機能について log4jに関して2点質問があります 1. log4jを利用して日付でローテーションしたいのですが DailyRollingFileAppender を使用したいのですが最大ファイル数が設定できないため ログファイルが無限に増えていくようです。検索してみると、自分でAppenderを作成して いたりする人もいましたが(古いバージョンのlog4jにて)現在のバージョンでも 日付ローテーションで最大ファイル数がしていできるAppenderは用意されていないの でしょうか。 2.機能ごとに出力するファイルを変えたいと思い log4j.properties に 以下設定を書いてみました(Aだけならちゃんと動くことは確認できましたが 設定Aと設定Bを共存させるとうまくうごかない)。 そもそもなんですがプロパティファイルにAとBの設定を書いて Javaのクラス側では設定Aでログを出力するかBを出力するかはどうやって 決めればよろしいでしょうか。また、設定Aと設定Bを使い分けるためにはプロパティファイルの 記述はどう書けばよろしいでしょうか。 log4j.rootCategory=INFO,A,B ##設定A log4j.appender.A=org.apache.log4j.RollingFileAppender log4j.appender.A.File=/log/TestLog.log log4j.appender.A.MaxFileSize=200MB log4j.appender.A.MaxBackupIndex=10 log4j.appender.A.Append=true log4j.appender.A.layout=org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern=%d %5p %c{1} - %m%n ##設定B log4j.appender.B=org.apache.log4j.RollingFileAppender log4j.appender.B.File=/log/TestLog2.log log4j.appender.B.MaxFileSize=200MB log4j.appender.B.MaxBackupIndex=10 log4j.appender.B.Append=true log4j.appender.B.layout=org.apache.log4j.PatternLayout log4j.appender.B.layout.ConversionPattern=%d %5p %c{1} - %m%n Javaでlog4jを使ってログを出力させてます。 Javaでlog4jを使ってログを出力させてます。 複数のログを出力したいので、同一propertiesに複数のAppenderを定義しています。 内容は以下の通りです。 log4j.logger.processA=DEBUG, A log4j.appender.A=org.apache.log4j.DailyRollingFileAppender log4j.appender.A.File=a.log log4j.appender.A.DatePattern='.'yyyy-MM-dd-HH-mm log4j.appender.A.Append=true log4j.appender.A.layout=org.apache.log4j.PatternLayout log4j.appender.A.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} %-5p %c - %m%n log4j.logger.processB=DEBUG, B log4j.appender.B=org.apache.log4j.DailyRollingFileAppender log4j.appender.B.File=b.log log4j.appender.B.DatePattern='.'yyyy-MM-dd-HH-mm log4j.appender.B.Append=true log4j.appender.B.layout=org.apache.log4j.PatternLayout log4j.appender.B.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} %-5p %c - %m%n log4j.logger.processC=DEBUG, C log4j.appender.C=org.apache.log4j.DailyRollingFileAppender log4j.appender.C.File=c.log log4j.appender.C.DatePattern='.'yyyy-MM-dd-HH-mm log4j.appender.C.Append=true log4j.appender.C.layout=org.apache.log4j.PatternLayout log4j.appender.C.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm:ss} %-5p %c - %m%n processAやらprocessB、processCは同一サーバ内で非同期で動くプロセスです。 つまり、動作するプロセス毎にログ出力先を変えてます。 各プロセスを動かすと、ちゃんと想定したログファイルに出力されるんですが、 ローテートの時に「log4j:ERROR Failed to rename ~」のエラーが出て、 正常にローテートしません。 なぜだろうと思って、一度全てのログファイルを削除して、 processAだけ動かしてみました。 すると、a.logだけが出力されると思いきや、 b.logとc.logまで0kbではありますが出力されたんです。 つまり、データこそ出力しないけど、 他プロセスで出力するファイルをロックしてたんです。 これって、同一propertiesに書いているのが悪いんでしょうか? それとも、設定が不足している為、そうなってしまってるんでしょうか? ご存知の方、お知恵をお貸し下さい。 Log4jのインストール Java初心者です。Log4Jをダウンロードして、サンプルコードを実行しようとしているのですが、うまく行きません。インストール手順が何か足りないのでしょうか。 環境: OS=MacOSX Java-version=1.5.0_16 (1)Log4jをダウンロードし、解凍して、そのうちファイル名=log4j-1.2.15.jarをソースと同じディレクトリに置く (2)ウェブで探してきたテスト用のサンプルコード(下記参照)をlog4J.javaというファイル名で作成 (3)CLASSPATH=xxx.xxx(ソースのある絶対パス)/log4j-1.2.15.jar; export CLASSPATH を実行してクラスパスを通す (4)javac log4J.javaでコンパイル(エラーは出ず) (5)java log4Jを実行 Exception in thread "main" java.lang.NoClassDefFoundError: log4J 例外エラー発生。なぜだかお分かりでしょうか? import org.apache.log4j.*; public class log4J { static Logger logger = Logger.getLogger(log4J.class); public static void main(String[] args) { BasicConfigurator.configure(); logger.debug("Hello world."); logger.info("What a beatiful day."); } } Javaでlog4jを使ってログ出力を行っています。 Javaでlog4jを使ってログ出力を行っています。 環境は以下の通りです。 j2sdk1.4.2 log4j1.2.8 log4j.xml内で指定したログファイル(test.log)を別のアプリで開いた状態で Javaプログラムを実行するとコンソールに以下のエラーが出力されます。 【エラー発生処理】 DOMConfiturator.configure(log4j.xml); 【エラー内容】 log4j:ERROR setFile(null, true) call failed java.io.FileNotFoundException : test.log(プロセスはファイルにアクセスできません。 別のプロセスが使用中です。) ファイルを開いているために書き込めず、エラーになってしまうのは良いのですが、 ログを出力しないだけで処理自体は続行してしまいます。 (ログを書き込めなかったらそこで処理を終了したいです。) 「書き込めなかった場合に例外をcatchする」等のことは可能でしょうか? log4jのログ出力先について log4jを使用してログ出力しています。 log4j.xmlはWEB-INFの下に設定してあります。 現在、ログの出力先がtomcatの直下になっています。 それをWEB-INFの配下辺りに出したいのですがどうしたらいいのでしょうか? なぜtomcatの下でログが出力されるようになっているのでしょうか? すいません、教えてください。 log4jでログファイルに出力されないです。 log4jでログファイルに出力されないです。 ただ、まったく出力されないわけではなく、特定のWebアプリから出力されていないようです。 複数のWebアプリケーションから、同じログファイルapp.logに書き込むようlog4j.propertiesに設定しています。 もしかして、これがよくないのでしょうか。 ひとつのWebアプリケーションがログファイルを確保したら、ほかのWebアプリケーションはもう書き込みができないのでしょうか? どうか、よろしくお願いいたします。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム Log4Jの基本 こんにちは。 Log4Jの基本について恐縮ですが、 任意のエラーメッセージを、Log4Jに出力させることは 可能なのでしょうか?。 レイアウトはpropertiesファイルに定義できるようですが・・ よろしくお願いします。 ログの保存期間 Java.util.logging パッケージを使って ログの保存を行数(limit)指定ではなく、 日数指定することは出来ましたでしょうか もしくはサーバサイドでも 設定が必要なんでしょうか。 環境は Windows Server 2003 J2sdk1.4.2_08+WebOTX です 宜しければ、 どなたかお知恵を貸していただけないでしょうか。 よろしくお願い致します。 Tomcat5.5.23 ログの出力先が指定できない こんにちは。 Tomcat(5.5.23)のログはlogging.propertiesを使って出力先を指定できると 思うのですが、指定した出力先にログがでません。 Tomcatは「Red Hat Enterprise Linux 5.2(64bit版)」のバンドル版を使っています。 起動スクリプトから呼ばれる/usr/bin/dtomcatでは、下記のようなように書かれています。 ============================= # Set juli LogManager if it is present if [ -r "$CATALINA_HOME"/bin/tomcat-juli.jar ]; then JAVA_OPTS="$JAVA_OPTS "-Djava.util.logging.manager= org.apache.juli.ClassLoaderLogManager" "-Djava.util.logging.config.file= "$CATALINA_BASE/conf/logging.properties" fi ============================= tomcat-juli.jarが、"$CATALINA_HOME"/binにないのでlogging.propertiesが読み込まれないのだろうと思います。 tomcat-juli.jarを外からダウンロードして使用するのは、難しい 状況なのですが、catalina.outやmanager.logなどを含めログの出力先を 指定するにはどうしたらいいでしょうか? 今は、/etc/tomcat5/tomcat5.confにTOMCAT_LOGを指定し、 log4jを使用して標準出力を指定先に出力しています。 そもそも何でtomcat-juli.jarがないのかもよくわからないのですが。 申し訳ありませんが、ご回答よろしく御願いします。 log4jでログレベルが取得できない。 次のようなLOG4jの設定ファイルからログレベルを取得したいのですが うまく取得できません。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <!-- 一般ログファイル出力 --> <appender name="LogFile" class="org.apache.log4j.FileAppender"> <param name="File" value="c:/TestLog4j.log"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p %m (%F:%L) %c[%t]%n"/> </layout> </appender> <!-- 一般ログ出力設定 --> <logger name="clip"> <level value="DEBUG"/> <appender-ref ref="LogFile"/> </logger> </log4j:configuration> JAVAのソースは //ログ4j設定ファイル読み込み DOMConfigurator.configure("c:/log4j.xml"); //ロガーの取得 Logger batchLog = Logger.getLogger(getClass()); //テストログの出力 batchLog.fatal("テスト"); //ログレベルの取得 Level logLevel = batchLog.getLevel(); System.out.println(logLevel); // 結果:null System.out.println(logLevel.toString()); // NullPointerExceptionでエラー テストログは出力できるのですが、ログレベルの取得で エラーになってしまいます。 log4jの設定ファイルからログレベルを取得するにはどうすれば 良いのでしょうか? Log4Jではログを改行できない? お世話になっております。 ログ出力用として Log4J を利用しているのですが、 1つのログメソッドでログ内容を改行することはできないのでしょうか? 以下のコードにおいて、改行コードが半角スペースに変換されてログファイルに出力されてしまいます。 ※コードは省略しています。 import org.apache.log4j.Logger; protected static final Logger logger = Logger.getLogger(X.class.getName(), new Factoty()); logger.info(new StringBuilder() .append("xxxx").append("\r\n") .append("yyyy") .toString()); 【出力結果】 xxxx yyyy テキストエディタで検索をかけても、「xxxx」と「yyyy」の間は「半角スペース」で一致します。 環境は WindowsXP です。 ご存知のかたがいらっしゃればご教示お願いいたします。 log4jログ解析(性能)に最適な方法は? こんにちは。 log4jによって出力されたログの解析を言い渡され、なにか楽な方法はないかと思案しております。 以前はgawkやらsedやらで頑張っていたのですが、短期間で効率よく解析したいので何か効率のいい方法がありましたら、教えてください。 漠然としていてすみまんせん。。。ログはうん10万ラインのオーダになりそうです。先輩にはPerlでツールを書くのがいいのではないかとアドバイスされましたが、短期間でPerlを習得してツールまで書くとなると、ちょっと間に合わなさそうです。 例えばlog4jの解析に特化したツールなどはありませんでしょうか? log4jを使って出力したログファイルの文字コード いつも参考にさせて頂いています。 初歩的な質問かもしれませんが宜しくお願いします。 現在log4jを使ってログを吐いているのですが、ログファイルの文字コードを"MS932"にする必要があるのですが、どこで設定すればいいのかわかりません。 ご指導宜しくお願いします。 ■開発環境■ log4j ver.1.2.13 jdk1.5.0 Log4jでログ生成時の日時付きファイル名 Javaプログラムの実行履歴をLog4jに記録させたいのですが、 このプログラムは常に動いているものではなく、月に2回バッチで動かすのと、 DBからデータが必要になった時に手動で実行(同じく月2回程度)するものです。 プログラムを実行したタイミングでログファイルを新たに生成して、且つ ファイル名のプレフィックス(orポストフィックス)にログファイル生成時の日時を付加したいのですが、 log4j.xmlにはどのように記述すれば良いでしょうか?? (別途Javaファイルが必要であればそれも。) また、上記の事を説明しているサイトのURLなどあれば教えてください。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など