Last-modified: 2007-09-10 (月) 01:31:48 (6067d)

 各環境に備わっている既定のログ出力機能を、以下にメモしておく。
 ASP.NETでは、システム既定の簡易なログ出力機能が無いようだ。log4netやEnterprise Libraryを利用して独自に実装することになるか。

Tomcat 5.5.25 + Java 1.6.0_01 + Windows XP Pro SP2

アクセスログ

  • 規定(Default)では、出力されない。
  • %CATALINA_HOME%\conf\server.xml で、コメントアウトされている AccessLogValve か FastCommonAccessLogValve を有効にすると、localhost_access_log.yyyy-MM-dd.txt ファイルに出力される。
    127.0.0.1 - - [09/Sep/2007:18:20:03 +0900] "GET /LogTest/LogDefaultServlet HTTP/1.1" 200 21

アプリケーションで捕捉されなかった例外のログ出力

  • localhost.yyyy-MM-dd.log ファイルに出力される。
    2007/09/09 15:58:33 org.apache.catalina.core.StandardWrapperValve invoke
    致命的: サーブレット LogDefaultServlet のServlet.service()が例外を投げました
    javax.servlet.ServletException: Exception
    	at logtest.LogDefaultServlet.doGet(LogDefaultServlet.java:24)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
              (以下略)

アプリケーションログ

System.out.println

  • ソースコード
    System.out.println("System.out.println");
  • ファイルに出力されない。
    • %CATALINA_HOME%\bin\startup.bat(startup.sh) を実行してサーバーを起動した場合、そのコンソールに出力される。

GenericServlet.log

  • ソースコード
    log("GenericServlet.log");
  • localhost.yyyy-MM-dd.log ファイルに出力される。
    2007/09/09 15:58:33 org.apache.catalina.core.ApplicationContext log
    情報: LogDefaultServlet: GenericServlet.log
  • ログレベルは指定不可。常にINFO。

java.util.logging.Logger (Java Logging API)

  • ソースコード
    Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).info("Logger.getLogger");
    • Java 1.4では以下のように記述できたが、 Java 1.6ではデッドロックが発生する可能性があるらしい。
      Logger.global.info("Logger.global.info");
    • 通常は、Loggerオブジェクトに対する参照を、クラス内で使いまわす。
  • catalina.yyyy-MM-dd.log ファイルに出力される。
    2007/09/09 18:19:14 logtest.LogDefaultServlet doGet
    情報: Logger.getLogger

org.apache.commons.logging.LogFactory

  • Tomcat 5.5.25では、%CATALINA_HOME%\bin フォルダにcommons-logging-api.jarファイルが配置されている。
  • ソースコード
    LogFactory.getLog("LogDefaultServlet").info("LogFactory.getLog");
    • 通常は、Logオブジェクトに対する参照を、クラス内で使いまわす。
  • catalina.yyyy-MM-dd.log ファイルに出力される。
    2007/09/09 18:19:14 logtest.LogDefaultServlet doGet
    情報: LogFactory.getLog

ASP.NET 2.0 + IIS 5.1 + Windows XP Pro SP2

アクセスログ

  • %SystemRoot%\system32\LogFiles\W3SVC1\ncyymm.log ファイルに出力される。
    • フォルダ指定は、IIS管理コンソール(MMC)で変更可能。

アプリケーションで捕捉されなかった例外のログ出力

  • ファイルに出力されない。
    • アプリケーション構成ファイルの設定により、Webブラウザのエラー画面上に出力される。
  • Global.asaxで補足したり、IHTTPHandlerを追加したりして、独自に実装する必要があるようだ。

アプリケーションログ

Console.WriteLine

  • ソースコード
    Console.WriteLine("Console.WriteLine");
  • 出力されない。

Debug.WriteLine

  • ソースコード
    Debug.WriteLine("Debug.WriteLine");
  • Visual Studioで実行した場合のみデバッグ出力されるが、ファイルには出力されない。

Trace.Write

  • ソースコード
    Trace.Write("Trace.Write");
  • ASP.NETのトレースログに出力される。Defaultではトレースログは無効。
    • ASP.NETでは、トレースログを簡易にファイル出力できないようだ。

EventLog.WriteEntry

PHP 5.2.4 + Apache 1.3.37 + Windows XP Pro SP2

アクセスログ

  • Apache HTTP Serverの access.log が利用できる。

アプリケーションで捕捉されなかった例外のログ出力

  • Apache HTTP Serverの error.log に出力される。

アプリケーションログ

error_log

  • Apache HTTP Serverの error.log に出力される。

syslog

  • Windowsの場合は、イベントログに出力されるようだ。

apache_note

  • アクセスログのレコードに記述を追加できる。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS