@@ -8,6 +8,13 @@ import 'dart:ui';
8
8
import 'package:flutter/foundation.dart' ;
9
9
import 'package:path/path.dart' as p;
10
10
11
+ @immutable
12
+ class _UpdateFileLeading {
13
+ const _UpdateFileLeading (this .content);
14
+
15
+ final String ? content;
16
+ }
17
+
11
18
abstract class LogFileManager {
12
19
static LogFileManager ? _instance;
13
20
@@ -78,12 +85,18 @@ abstract class LogFileManager {
78
85
messageReceiver.listen ((message) {
79
86
if (message is String ) {
80
87
logFileHandler.write (message);
88
+ } else if (message is _UpdateFileLeading ) {
89
+ logFileHandler.fileLeading = message.content;
90
+ } else {
91
+ assert (false , 'unknown message: $message ' );
81
92
}
82
93
});
83
94
responsePort.send (messageReceiver.sendPort);
84
95
}
85
96
86
97
Future <void > write (String message);
98
+
99
+ void setLoggerFileLeading (String ? fileLeading);
87
100
}
88
101
89
102
class _LogFileMangerForOtherIsolate implements LogFileManager {
@@ -95,6 +108,11 @@ class _LogFileMangerForOtherIsolate implements LogFileManager {
95
108
Future <void > write (String message) async {
96
109
_sendPort.send (message);
97
110
}
111
+
112
+ @override
113
+ void setLoggerFileLeading (String ? fileLeading) {
114
+ _sendPort.send (_UpdateFileLeading (fileLeading));
115
+ }
98
116
}
99
117
100
118
class _LogFileManagerForLogIsolate implements LogFileManager {
@@ -107,6 +125,11 @@ class _LogFileManagerForLogIsolate implements LogFileManager {
107
125
handler.write (message);
108
126
return Future .value ();
109
127
}
128
+
129
+ @override
130
+ void setLoggerFileLeading (String ? fileLeading) {
131
+ handler.fileLeading = fileLeading;
132
+ }
110
133
}
111
134
112
135
final _fileNameRegex = RegExp (r'^log_\d+.log$' );
@@ -209,7 +232,7 @@ class LogFileHandler {
209
232
210
233
final int maxFileLength;
211
234
212
- final String ? fileLeading;
235
+ String ? fileLeading;
213
236
214
237
void write (String message) {
215
238
assert (_logFile != null , 'Log file is null' );
0 commit comments