6
6
using NLog . Targets ;
7
7
using Flow . Launcher . Infrastructure . UserSettings ;
8
8
using JetBrains . Annotations ;
9
+ using NLog . Fluent ;
9
10
using NLog . Targets . Wrappers ;
10
11
using System . Runtime . ExceptionServices ;
12
+ using System . Text ;
11
13
12
14
namespace Flow . Launcher . Infrastructure . Logger
13
15
{
@@ -26,29 +28,33 @@ static Log()
26
28
}
27
29
28
30
var configuration = new LoggingConfiguration ( ) ;
31
+
32
+ const string layout = @"${logger}->${time}|${level}|${message}|${onexception:inner=${logger}->${date:format=HH\:mm\:ss}|${level}|${message}|${newline}${exception:format=toString}${newline}" ;
33
+
29
34
var fileTarget = new FileTarget
30
35
{
31
- FileName = CurrentLogDirectory . Replace ( @"\" , "/" ) + "/${shortdate}.txt"
36
+ FileName = CurrentLogDirectory . Replace ( @"\" , "/" ) + "/${shortdate}.txt" ,
37
+ Layout = layout
32
38
} ;
33
39
34
40
var fileTargetASyncWrapper = new AsyncTargetWrapper ( fileTarget ) ;
35
41
36
- var debugTarget = new DebuggerTarget
42
+ var debugTarget = new OutputDebugStringTarget
37
43
{
38
- Layout = "${level:uppercase=true}|${message}"
44
+ Layout = layout
39
45
} ;
40
-
46
+
41
47
configuration . AddTarget ( "file" , fileTargetASyncWrapper ) ;
42
- configuration . AddTarget ( "console" , debugTarget ) ;
48
+ configuration . AddTarget ( "debug" , debugTarget ) ;
49
+
43
50
#if DEBUG
44
51
var fileRule = new LoggingRule ( "*" , LogLevel . Debug , fileTargetASyncWrapper ) ;
45
52
var debugRule = new LoggingRule ( "*" , LogLevel . Debug , debugTarget ) ;
53
+ configuration . LoggingRules . Add ( debugRule ) ;
46
54
#else
47
- var rule = new LoggingRule ( "*" , LogLevel . Info , fileTargetASyncWrapper ) ;
48
- var debugRule = new LoggingRule ( "*" , LogLevel . Info , consoleTarget ) ;
55
+ var fileRule = new LoggingRule ( "*" , LogLevel . Info , fileTargetASyncWrapper ) ;
49
56
#endif
50
57
configuration . LoggingRules . Add ( fileRule ) ;
51
- configuration . LoggingRules . Add ( debugRule ) ;
52
58
LogManager . Configuration = configuration ;
53
59
}
54
60
@@ -105,22 +111,9 @@ private static void ExceptionInternal(string classAndMethod, string message, Sys
105
111
{
106
112
var logger = LogManager . GetLogger ( classAndMethod ) ;
107
113
114
+ var messageBuilder = new StringBuilder ( ) ;
108
115
109
- logger . Error ( "-------------------------- Begin exception --------------------------" ) ;
110
- logger . Error ( message ) ;
111
-
112
- do
113
- {
114
- logger . Error ( $ "Exception full name:\n <{ e . GetType ( ) . FullName } >") ;
115
- logger . Error ( $ "Exception message:\n <{ e . Message } >") ;
116
- logger . Error ( $ "Exception stack trace:\n <{ e . StackTrace } >") ;
117
- logger . Error ( $ "Exception source:\n <{ e . Source } >") ;
118
- logger . Error ( $ "Exception target site:\n <{ e . TargetSite } >") ;
119
- logger . Error ( $ "Exception HResult:\n <{ e . HResult } >") ;
120
- e = e . InnerException ;
121
- } while ( e != null ) ;
122
-
123
- logger . Error ( "-------------------------- End exception --------------------------" ) ;
116
+ logger . Error ( e , message ) ;
124
117
}
125
118
126
119
private static void LogInternal ( string message , LogLevel level )
@@ -141,7 +134,6 @@ private static void LogInternal(string message, LogLevel level)
141
134
142
135
/// <param name="message">example: "|prefix|unprefixed" </param>
143
136
/// <param name="e">Exception</param>
144
- [ MethodImpl ( MethodImplOptions . Synchronized ) ]
145
137
public static void Exception ( string message , System . Exception e )
146
138
{
147
139
e = e . Demystify ( ) ;
0 commit comments