@@ -7,12 +7,12 @@ use tracing_subscriber::{
77use crate :: {
88 print_to_terminal,
99 vfs:: { create_drive, open_file, File } ,
10- Address ,
10+ Address , Request ,
1111} ;
1212
1313pub struct RemoteLogSettings {
1414 pub target : Address ,
15- pub level : u8 ,
15+ pub level : Level ,
1616}
1717
1818pub struct RemoteWriter {
@@ -41,11 +41,7 @@ pub struct TerminalWriterMaker {
4141
4242impl std:: io:: Write for RemoteWriter {
4343 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 ( ) ;
4945 Ok ( buf. len ( ) )
5046 }
5147
@@ -55,11 +51,11 @@ impl std::io::Write for RemoteWriter {
5551}
5652
5753impl < ' a > tracing_subscriber:: fmt:: MakeWriter < ' a > for RemoteWriterMaker {
58- type Writer = FileWriter ;
54+ type Writer = RemoteWriter ;
5955
6056 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 ( ) ,
6359 }
6460 }
6561}
@@ -176,17 +172,6 @@ pub fn init_logging(
176172
177173 // TODO: can we DRY?
178174 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- ) ;
190175 if terminal_level >= Level :: DEBUG {
191176 sub. with (
192177 fmt:: layer ( )
@@ -258,6 +243,20 @@ pub fn init_logging(
258243 return Ok ( ( ) ) ;
259244 } ;
260245
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+ ) ;
261260 if terminal_level >= Level :: DEBUG {
262261 sub. with (
263262 fmt:: layer ( )
0 commit comments