@@ -47,8 +47,53 @@ private static bool FormatValid(string message)
47
47
return valid ;
48
48
}
49
49
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 )
52
97
{
53
98
if ( FormatValid ( message ) )
54
99
{
@@ -57,8 +102,8 @@ public static void Error(string message)
57
102
var unprefixed = parts [ 2 ] ;
58
103
var logger = LogManager . GetLogger ( prefix ) ;
59
104
60
- System . Diagnostics . Debug . WriteLine ( $ "ERROR |{ message } ") ;
61
- logger . Error ( unprefixed ) ;
105
+ System . Diagnostics . Debug . WriteLine ( $ "{ level . Name } |{ message } ") ;
106
+ logger . Log ( level , unprefixed ) ;
62
107
}
63
108
else
64
109
{
@@ -78,88 +123,37 @@ public static void Exception(string message, System.Exception e)
78
123
var parts = message . Split ( '|' ) ;
79
124
var prefix = parts [ 1 ] ;
80
125
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 ) ;
100
127
}
101
128
else
102
129
{
103
130
LogFaultyFormat ( message ) ;
104
131
}
105
132
#endif
106
133
}
107
-
134
+
108
135
/// <param name="message">example: "|prefix|unprefixed" </param>
109
- public static void Debug ( string message )
136
+ public static void Error ( string message )
110
137
{
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
+ }
117
140
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 ) ;
125
145
}
126
146
127
147
/// <param name="message">example: "|prefix|unprefixed" </param>
128
148
public static void Info ( string message )
129
149
{
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 ) ;
144
151
}
145
152
146
153
/// <param name="message">example: "|prefix|unprefixed" </param>
147
154
public static void Warn ( string message )
148
155
{
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 ) ;
163
157
}
164
158
}
165
159
}
0 commit comments