@@ -47,8 +47,53 @@ private static bool FormatValid(string message)
4747 return valid ;
4848 }
4949
50- /// <param name="message">example: "|prefix|unprefixed" </param>
51- public static void Error ( string message )
50+
51+
52+ [ MethodImpl ( MethodImplOptions . Synchronized ) ]
53+ public static void Exception ( string className , string message , System . Exception exception , [ CallerMemberName ] string methodName = "" )
54+ {
55+ if ( string . IsNullOrWhiteSpace ( className ) )
56+ {
57+ LogFaultyFormat ( $ "Fail to specify a class name during logging of message: { message ?? "no message entered" } ") ;
58+ }
59+
60+ if ( string . IsNullOrWhiteSpace ( message ) )
61+ { // todo: not sure we really need that
62+ LogFaultyFormat ( $ "Fail to specify a message during logging") ;
63+ }
64+
65+ if ( ! string . IsNullOrWhiteSpace ( methodName ) )
66+ {
67+ className += "." + methodName ;
68+ }
69+
70+ ExceptionInternal ( className , message , exception ) ;
71+ }
72+
73+ private static void ExceptionInternal ( string classAndMethod , string message , System . Exception e )
74+ {
75+ var logger = LogManager . GetLogger ( classAndMethod ) ;
76+
77+ System . Diagnostics . Debug . WriteLine ( $ "ERROR|{ message } ") ;
78+
79+ logger . Error ( "-------------------------- Begin exception --------------------------" ) ;
80+ logger . Error ( message ) ;
81+
82+ do
83+ {
84+ logger . Error ( $ "Exception full name:\n <{ e . GetType ( ) . FullName } >") ;
85+ logger . Error ( $ "Exception message:\n <{ e . Message } >") ;
86+ logger . Error ( $ "Exception stack trace:\n <{ e . StackTrace } >") ;
87+ logger . Error ( $ "Exception source:\n <{ e . Source } >") ;
88+ logger . Error ( $ "Exception target site:\n <{ e . TargetSite } >") ;
89+ logger . Error ( $ "Exception HResult:\n <{ e . HResult } >") ;
90+ e = e . InnerException ;
91+ } while ( e != null ) ;
92+
93+ logger . Error ( "-------------------------- End exception --------------------------" ) ;
94+ }
95+
96+ private static void LogInternal ( string message , LogLevel level )
5297 {
5398 if ( FormatValid ( message ) )
5499 {
@@ -57,8 +102,8 @@ public static void Error(string message)
57102 var unprefixed = parts [ 2 ] ;
58103 var logger = LogManager . GetLogger ( prefix ) ;
59104
60- System . Diagnostics . Debug . WriteLine ( $ "ERROR |{ message } ") ;
61- logger . Error ( unprefixed ) ;
105+ System . Diagnostics . Debug . WriteLine ( $ "{ level . Name } |{ message } ") ;
106+ logger . Log ( level , unprefixed ) ;
62107 }
63108 else
64109 {
@@ -78,88 +123,37 @@ public static void Exception(string message, System.Exception e)
78123 var parts = message . Split ( '|' ) ;
79124 var prefix = parts [ 1 ] ;
80125 var unprefixed = parts [ 2 ] ;
81- var logger = LogManager . GetLogger ( prefix ) ;
82-
83- System . Diagnostics . Debug . WriteLine ( $ "ERROR|{ message } ") ;
84-
85- logger . Error ( "-------------------------- Begin exception --------------------------" ) ;
86- logger . Error ( unprefixed ) ;
87-
88- do
89- {
90- logger . Error ( $ "Exception full name:\n <{ e . GetType ( ) . FullName } >") ;
91- logger . Error ( $ "Exception message:\n <{ e . Message } >") ;
92- logger . Error ( $ "Exception stack trace:\n <{ e . StackTrace } >") ;
93- logger . Error ( $ "Exception source:\n <{ e . Source } >") ;
94- logger . Error ( $ "Exception target site:\n <{ e . TargetSite } >") ;
95- logger . Error ( $ "Exception HResult:\n <{ e . HResult } >") ;
96- e = e . InnerException ;
97- } while ( e != null ) ;
98-
99- logger . Error ( "-------------------------- End exception --------------------------" ) ;
126+ ExceptionInternal ( prefix , unprefixed , e ) ;
100127 }
101128 else
102129 {
103130 LogFaultyFormat ( message ) ;
104131 }
105132#endif
106133 }
107-
134+
108135 /// <param name="message">example: "|prefix|unprefixed" </param>
109- public static void Debug ( string message )
136+ public static void Error ( string message )
110137 {
111- if ( FormatValid ( message ) )
112- {
113- var parts = message . Split ( '|' ) ;
114- var prefix = parts [ 1 ] ;
115- var unprefixed = parts [ 2 ] ;
116- var logger = LogManager . GetLogger ( prefix ) ;
138+ LogInternal ( message , LogLevel . Error ) ;
139+ }
117140
118- System . Diagnostics . Debug . WriteLine ( $ "DEBUG|{ message } ") ;
119- logger . Debug ( unprefixed ) ;
120- }
121- else
122- {
123- LogFaultyFormat ( message ) ;
124- }
141+ /// <param name="message">example: "|prefix|unprefixed" </param>
142+ public static void Debug ( string message )
143+ {
144+ LogInternal ( message , LogLevel . Debug ) ;
125145 }
126146
127147 /// <param name="message">example: "|prefix|unprefixed" </param>
128148 public static void Info ( string message )
129149 {
130- if ( FormatValid ( message ) )
131- {
132- var parts = message . Split ( '|' ) ;
133- var prefix = parts [ 1 ] ;
134- var unprefixed = parts [ 2 ] ;
135- var logger = LogManager . GetLogger ( prefix ) ;
136-
137- System . Diagnostics . Debug . WriteLine ( $ "INFO|{ message } ") ;
138- logger . Info ( unprefixed ) ;
139- }
140- else
141- {
142- LogFaultyFormat ( message ) ;
143- }
150+ LogInternal ( message , LogLevel . Info ) ;
144151 }
145152
146153 /// <param name="message">example: "|prefix|unprefixed" </param>
147154 public static void Warn ( string message )
148155 {
149- if ( FormatValid ( message ) )
150- {
151- var parts = message . Split ( '|' ) ;
152- var prefix = parts [ 1 ] ;
153- var unprefixed = parts [ 2 ] ;
154- var logger = LogManager . GetLogger ( prefix ) ;
155-
156- System . Diagnostics . Debug . WriteLine ( $ "WARN|{ message } ") ;
157- logger . Warn ( unprefixed ) ;
158- }
159- else
160- {
161- LogFaultyFormat ( message ) ;
162- }
156+ LogInternal ( message , LogLevel . Warn ) ;
163157 }
164158 }
165159}
0 commit comments