(&mut self)
| 77 | |
| 78 | #[tracing::instrument(level = "debug", skip(self))] |
| 79 | fn flush(&mut self) -> io::Result<()> { |
| 80 | if !self.log_file { |
| 81 | let parsed = str::from_utf8(&self.data) |
| 82 | .map_err(|e| io::Error::new(io::ErrorKind::InvalidData, e.to_string()))?; |
| 83 | match self.level { |
| 84 | tracing::Level::DEBUG => { |
| 85 | console_debug!("{}", parsed); |
| 86 | } |
| 87 | tracing::Level::ERROR => { |
| 88 | console_error!("{}", parsed); |
| 89 | } |
| 90 | tracing::Level::INFO => { |
| 91 | console_info!("{}", parsed); |
| 92 | } |
| 93 | tracing::Level::TRACE => { |
| 94 | console_trace!("{}", parsed); |
| 95 | } |
| 96 | tracing::Level::WARN => { |
| 97 | console_warn!("{}", parsed); |
| 98 | } |
| 99 | }; |
| 100 | } else { |
| 101 | let data = self.data.clone(); |
| 102 | spawn_local(async move { |
| 103 | if let Err(e) = invoke( |
| 104 | "renderer_write", |
| 105 | serde_wasm_bindgen::to_value(&RendererWriteArgs { data }).unwrap(), |
| 106 | ) |
| 107 | .await |
| 108 | { |
| 109 | console_error!("Failed to write log: {:?}", e); |
| 110 | } |
| 111 | }); |
| 112 | } |
| 113 | |
| 114 | Ok(()) |
| 115 | } |
| 116 | } |
| 117 | |
| 118 | impl Drop for ConsoleWriter { |
no test coverage detected