@@ -17,13 +17,20 @@ internal ILogWriter WrappedLogWriter
17
17
}
18
18
public string LogWriterName
19
19
{
20
- get { return this . WrappedLogWriter . Name ; }
20
+ get { return this . WrappedLogWriter ? . Name ; }
21
21
}
22
22
23
- internal LogWriterManager ( )
23
+ /// <param name="enabled">
24
+ /// If set to false, no default log writer will be set at first, but a new one can be added with
25
+ /// <see cref="Attach(ILogWriter)"/> later.
26
+ /// </param>
27
+ internal LogWriterManager ( bool enabled )
24
28
{
25
- this . DefaultLogWriter = new ServerLogWriter ( ) ;
26
- this . WrappedLogWriter = this . DefaultLogWriter ;
29
+ if ( enabled )
30
+ {
31
+ this . DefaultLogWriter = new ServerLogWriter ( ) ;
32
+ this . WrappedLogWriter = this . DefaultLogWriter ;
33
+ }
27
34
}
28
35
29
36
public void Attach ( ILogWriter newLogWriter )
@@ -57,7 +64,7 @@ public void Attach(ILogWriter newLogWriter)
57
64
58
65
if ( detachException != null )
59
66
this . ServerWriteLine (
60
- string . Format ( "Log writer \" {0}\" had thrown an unexpected exception:\n {1}" , prevLogWriter . Name , detachException ) ,
67
+ string . Format ( "Log writer \" {0}\" has thrown an unexpected exception:\n {1}" , prevLogWriter ? . Name , detachException ) ,
61
68
TraceLevel . Error ) ;
62
69
}
63
70
@@ -72,7 +79,7 @@ internal void Deatch()
72
79
}
73
80
catch ( Exception ex )
74
81
{
75
- DefaultLogWriter . ServerWriteLine (
82
+ DefaultLogWriter ? . ServerWriteLine (
76
83
string . Format ( "Log writer \" {0}\" has thrown an unexpected exception:\n {1}" , this . LogWriterName , ex ) , TraceLevel . Error ) ;
77
84
}
78
85
@@ -81,27 +88,33 @@ internal void Deatch()
81
88
82
89
internal void ServerWriteLine ( string message , TraceLevel kind )
83
90
{
91
+ if ( this . WrappedLogWriter == null )
92
+ return ;
93
+
84
94
try
85
95
{
86
96
this . WrappedLogWriter . ServerWriteLine ( message , kind ) ;
87
97
}
88
98
catch ( Exception ex )
89
99
{
90
- this . DefaultLogWriter . ServerWriteLine ( string . Format (
100
+ this . DefaultLogWriter ? . ServerWriteLine ( string . Format (
91
101
"The attached log writer \" {0}\" has thrown an unexpected exception:\n {1}" , this . LogWriterName , ex ) ,
92
102
TraceLevel . Error ) ;
93
103
}
94
104
}
95
105
96
106
public void PluginWriteLine ( TerrariaPlugin plugin , string message , TraceLevel kind )
97
107
{
108
+ if ( this . WrappedLogWriter == null )
109
+ return ;
110
+
98
111
try
99
112
{
100
113
this . WrappedLogWriter . PluginWriteLine ( plugin , message , kind ) ;
101
114
}
102
115
catch ( Exception ex )
103
116
{
104
- DefaultLogWriter . ServerWriteLine ( string . Format (
117
+ DefaultLogWriter ? . ServerWriteLine ( string . Format (
105
118
"The attached log writer \" {0}\" has thrown an unexpected exception:\n {1}" , this . LogWriterName , ex ) ,
106
119
TraceLevel . Error ) ;
107
120
}
0 commit comments