ASP.NETでTraceListenerでログをファイル出力する
ASP.NET/VB2008でアプリケーションログを出力するためTextWriterTraceListenerを使用する。
- Windows XP Pro SP3
- IIS 5.1
- ASP.NET 2.0.50727
- .NET Framework 3.5 SP1
- Visual Basic 2008
compilerOptions="/d:Trace=true"
type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
warningLevel="4">
Imports Microsoft.VisualBasic
Imports System.Diagnostics
Imports System.IONamespace LogTest
'Singleton Log Class:
Public Class Log'Singleton log object
Private Shared myLog As Log
Private Shared strLogPath As String'Log level constant
Public Shared ReadOnly LOG_LVL_INFO As String = "I"
Public Shared ReadOnly LOG_LVL_WARN As String = "W"
Public Shared ReadOnly LOG_LVL_ERR As String = "E"'*******************
'Private Constructor
'*******************
Private Sub New()
'Set log directory
strLogPath = String.Format("{0}\\{1}.log", ConfigurationManager.AppSettings("DirLog"), DateTime.Now.ToString("yyyyMM"))
End Sub'*******************
'Static Write Method
'*******************
Public Shared Sub Write(ByVal msg As Object, ByVal strLogLevel As String)'Create an object if not instantiated
If myLog Is Nothing Then
myLog = New Log()
End IfDim strLogLine As String
Dim strTimestamp As String
Dim strBranch As StringstrTimestamp = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss:fff")
strLogLine = strTimestamp + " " + strLogLevel + " " + msg.ToString()Using myFile As Stream = File.Open(strLogPath, FileMode.Append)
Trace.Listeners.Add(New TextWriterTraceListener(myFile))
Trace.WriteLine(strLogLine)
Trace.Flush()
Trace.Listeners.Clear()End Using
End SubEnd Class
End Namespace
Imports LogTestPublic Class LogTestPage : Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Log.Write("ログ書き込み: 情報", Log.LOG_LVL_INFO)
Log.Write("ログ書き込み: 警告", Log.LOG_LVL_WARN)
Log.Write("ログ書き込み: エラー", Log.LOG_LVL_ERR)
End SubEnd Class