@@ -7,12 +7,12 @@ use tracing_subscriber::{
7
7
use crate :: {
8
8
print_to_terminal,
9
9
vfs:: { create_drive, open_file, File } ,
10
- Address ,
10
+ Address , Request ,
11
11
} ;
12
12
13
13
pub struct RemoteLogSettings {
14
14
pub target : Address ,
15
- pub level : u8 ,
15
+ pub level : Level ,
16
16
}
17
17
18
18
pub struct RemoteWriter {
@@ -41,11 +41,7 @@ pub struct TerminalWriterMaker {
41
41
42
42
impl std:: io:: Write for RemoteWriter {
43
43
fn write ( & mut self , buf : & [ u8 ] ) -> std:: io:: Result < usize > {
44
- Request :: to ( self . target )
45
- . body ( buf)
46
- . send ( )
47
- . unwrap ( )
48
- . map_err ( |e| std:: io:: Error :: new ( std:: io:: ErrorKind :: Other , e) ) ?;
44
+ Request :: to ( & self . target ) . body ( buf) . send ( ) . unwrap ( ) ;
49
45
Ok ( buf. len ( ) )
50
46
}
51
47
@@ -55,11 +51,11 @@ impl std::io::Write for RemoteWriter {
55
51
}
56
52
57
53
impl < ' a > tracing_subscriber:: fmt:: MakeWriter < ' a > for RemoteWriterMaker {
58
- type Writer = FileWriter ;
54
+ type Writer = RemoteWriter ;
59
55
60
56
fn make_writer ( & ' a self ) -> Self :: Writer {
61
- FileWriter {
62
- file : File :: new ( self . file . path . clone ( ) , self . file . timeout ) ,
57
+ RemoteWriter {
58
+ target : self . target . clone ( ) ,
63
59
}
64
60
}
65
61
}
@@ -176,17 +172,6 @@ pub fn init_logging(
176
172
177
173
// TODO: can we DRY?
178
174
let Some ( remote) = remote else {
179
- let remote_filter = EnvFilter :: new ( remote. level . as_str ( ) ) ;
180
- let sub = sub. with (
181
- fmt:: layer ( )
182
- . with_file ( true )
183
- . with_line_number ( true )
184
- . with_writer ( remote_writer_maker)
185
- . with_ansi ( false )
186
- . with_target ( false )
187
- . json ( )
188
- . with_filter ( remote_filter) ,
189
- ) ;
190
175
if terminal_level >= Level :: DEBUG {
191
176
sub. with (
192
177
fmt:: layer ( )
@@ -258,6 +243,20 @@ pub fn init_logging(
258
243
return Ok ( ( ) ) ;
259
244
} ;
260
245
246
+ let remote_filter = EnvFilter :: new ( remote. level . as_str ( ) ) ;
247
+ let remote_writer_maker = RemoteWriterMaker {
248
+ target : remote. target ,
249
+ } ;
250
+ let sub = sub. with (
251
+ fmt:: layer ( )
252
+ . with_file ( true )
253
+ . with_line_number ( true )
254
+ . with_writer ( remote_writer_maker)
255
+ . with_ansi ( false )
256
+ . with_target ( false )
257
+ . json ( )
258
+ . with_filter ( remote_filter) ,
259
+ ) ;
261
260
if terminal_level >= Level :: DEBUG {
262
261
sub. with (
263
262
fmt:: layer ( )
0 commit comments