WindowsServer2003の時は
500エラーがおきた場合にカスタムエラーを設定することで
エラーの内容をログに出力できました
Dim objAspErr Dim strLogFilePath Dim strLogStr 'ログファイルパス生成 strLogFilePath = "/logs/app" & ErrCode & "Error" & DateFormat(NOW(), "YYYYMMDD") & ".log" 'エラーオブジェクトの取得 Set objAspErr = Server.GetLastError() 'エラーメッセージ生成 strLogStr = "アプリケーション実行時にエラーが発生しました" & " " strLogStr = strLogStr & "[Message:" & objAspErr.Description & "] " strLogStr = strLogStr & "[FILE:" & objAspErr.File & "] " strLogStr = strLogStr & "[LINE:" & objAspErr.Line & "] " strLogStr = strLogStr & "[QUERY STRING:" & Request.ServerVariables("QUERY_STRING") & "] " strLogStr = strLogStr & "[USER_AGENT:" & Request.ServerVariables("HTTP_USER_AGENT") & "] " strLogStr = strLogStr & "[REFERER:" & Request.ServerVariables("HTTP_REFERER") & "] " strLogStr = strLogStr & "[REMOTE ADDR:" & Request.ServerVariables("REMOTE_ADDR") & "] " strLogStr = strLogStr & "[File:" & Request.ServerVariables("SCRIPT_NAME") & "]" strLogStr = strLogStr & "[IP:" & Request.ServerVariables("SERVER_NAME") & "]" '**** ログ出力 Call LogWriter(strLogFilePath,strLogStr)
WindowsServer2012は
最初から登録されている 500 のエラーに設定してもとれません。500.100 をハンドリングしないといけません。
念のために500は消しました
あとビックリしたのが
今までは変数を宣言していないとエラーになっていたのが
エラーにならないこと
変数宣言系でエラーにならないのは
ありがたい
ただ、宣言していないとメモリを無駄に使ってしまうような
気がする