@@ -1,6 +1,6 @@
11use std::collections::HashMap;
22
3−use log::{debug, error};
3+use log::{error, info};
44
55use crate::Error;
66
@@ -48,7 +48,6 @@ pub(crate) struct Transport {
4848
4949 writer: BufWriter<ChildStdin>,
5050 reader: BufReader<ChildStdout>,
51− #[allow(dead_code)] // TODO: handle stderr logs
5251 stderr: BufReader<ChildStderr>,
5352}
5453
@@ -111,7 +110,7 @@ impl Transport {
111110
112111 // read data
113112
114− debug!("<- {}", msg);
113+ info!("<- {}", msg);
115114
116115 // try parsing as output (server response) or call (server request)
117116 let output: serde_json::Result<Message> = serde_json::from_str(&msg);
@@ -119,6 +118,16 @@ impl Transport {
119118 Ok(output?)
120119 }
121120
121+ async fn err(
122+ err: &mut (impl AsyncBufRead + Unpin),
123+ ) -> core::result::Result<(), std::io::Error> {
124+ let mut line = String::new();
125+ err.read_line(&mut line).await?;
126+ error!("err <- {}", line);
127+
128+ Ok(())
129+ }
130+
122131 pub async fn send_payload(&mut self, payload: Payload) -> anyhow::Result<()> {
123132 match payload {
124133 Payload::Request { chan, value } => {
@@ -139,7 +148,7 @@ impl Transport {
139148 }
140149
141150 pub async fn send(&mut self, request: String) -> anyhow::Result<()> {
142− debug!("-> {}", request);
151+ info!("-> {}", request);
143152
144153 // send the headers
145154 self.writer
@@ -168,7 +177,7 @@ impl Transport {
168177 async fn recv_response(&mut self, output: jsonrpc::Output) -> anyhow::Result<()> {
169178 match output {
170179 jsonrpc::Output::Success(jsonrpc::Success { id, result, .. }) => {
171− debug!("<- {}", result);
180+ info!("<- {}", result);
172181
173182 let tx = self
174183 .pending_requests
@@ -210,6 +219,7 @@ impl Transport {
210219
211220 self.recv_msg(msg).await.unwrap();
212221 }
222+ _msg = Self::err(&mut self.stderr).fuse() => {}
213223 }
214224 }
215225 }