+++ /dev/null
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.IO;\r
-using System.Diagnostics;\r
-\r
-namespace FDK\r
-{\r
- public class CTraceLogListener : TraceListener\r
- {\r
- public CTraceLogListener( StreamWriter stream )\r
- {\r
- this.streamWriter = stream;\r
- }\r
-\r
- public override void Flush()\r
- {\r
- if( this.streamWriter != null )\r
- {\r
- try\r
- {\r
- this.streamWriter.Flush();\r
- }\r
- catch( ObjectDisposedException )\r
- {\r
- }\r
- }\r
- }\r
- public override void TraceEvent( TraceEventCache eventCache, string source, TraceEventType eventType, int id, string message )\r
- {\r
- if( this.streamWriter != null )\r
- {\r
- try\r
- {\r
- this.tイベント種別を出力する( eventType );\r
- this.tインデントを出力する();\r
- this.streamWriter.WriteLine( message );\r
- }\r
- catch( ObjectDisposedException )\r
- {\r
- }\r
- }\r
- }\r
- public override void TraceEvent( TraceEventCache eventCache, string source, TraceEventType eventType, int id, string format, params object[] args )\r
- {\r
- if( this.streamWriter != null )\r
- {\r
- try\r
- {\r
- this.tイベント種別を出力する( eventType );\r
- this.tインデントを出力する();\r
- this.streamWriter.WriteLine( string.Format( format, args ) );\r
- }\r
- catch( ObjectDisposedException )\r
- {\r
- }\r
- }\r
- }\r
- public override void Write( string message )\r
- {\r
- if( this.streamWriter != null )\r
- {\r
- try\r
- {\r
- this.streamWriter.Write( message );\r
- }\r
- catch( ObjectDisposedException )\r
- {\r
- }\r
- }\r
- }\r
- public override void WriteLine( string message )\r
- {\r
- if( this.streamWriter != null )\r
- {\r
- try\r
- {\r
- this.streamWriter.WriteLine( message );\r
- }\r
- catch( ObjectDisposedException )\r
- {\r
- }\r
- }\r
- }\r
-\r
- protected override void Dispose( bool disposing )\r
- {\r
- if( this.streamWriter != null )\r
- {\r
- try\r
- {\r
- this.streamWriter.Close();\r
- }\r
- catch\r
- {\r
- }\r
- this.streamWriter = null;\r
- }\r
- base.Dispose( disposing );\r
- }\r
-\r
- #region [ private ]\r
- //-----------------\r
- private StreamWriter streamWriter;\r
-\r
- private void tイベント種別を出力する( TraceEventType eventType )\r
- {\r
- if( this.streamWriter != null )\r
- {\r
- try\r
- {\r
- var now = DateTime.Now;\r
- this.streamWriter.Write( string.Format( "{0:D4}/{1:D2}/{2:D2} {3:D2}:{4:D2}:{5:D2}.{6:D3} ", new object[] { now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, now.Millisecond } ) );\r
- switch( eventType )\r
- {\r
- case TraceEventType.Error:\r
- this.streamWriter.Write( "[ERROR] " );\r
- return;\r
-\r
- case ( TraceEventType.Error | TraceEventType.Critical ):\r
- return;\r
-\r
- case TraceEventType.Warning:\r
- this.streamWriter.Write( "[WARNING] " );\r
- return;\r
-\r
- case TraceEventType.Information:\r
- break;\r
-\r
- default:\r
- return;\r
- }\r
- this.streamWriter.Write( "[INFO] " );\r
- }\r
- catch( ObjectDisposedException )\r
- {\r
- }\r
- }\r
- }\r
- private void tインデントを出力する()\r
- {\r
- if( ( this.streamWriter != null ) && ( base.IndentLevel > 0 ) )\r
- {\r
- try\r
- {\r
- for( int i = 0; i < base.IndentLevel; i++ )\r
- this.streamWriter.Write( " " );\r
- }\r
- catch( ObjectDisposedException )\r
- {\r
- }\r
- }\r
- }\r
- //-----------------\r
- #endregion\r
- }\r
-}\r