dap: logging using fern

pull/574/head
Dmitry Sharshakov 3 years ago committed by Blaž Hrastnik
parent 0f6e81b85b
commit fd709bc56d

1
Cargo.lock generated

@ -327,6 +327,7 @@ name = "helix-dap"
version = "0.3.0" version = "0.3.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"fern",
"log", "log",
"serde", "serde",
"serde_json", "serde_json",

@ -18,3 +18,6 @@ serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0" serde_json = "1.0"
thiserror = "1.0" thiserror = "1.0"
tokio = { version = "1.9", features = ["rt", "rt-multi-thread", "io-util", "io-std", "time", "process", "macros", "fs", "parking_lot"] } tokio = { version = "1.9", features = ["rt", "rt-multi-thread", "io-util", "io-std", "time", "process", "macros", "fs", "parking_lot"] }
[dev-dependencies]
fern = "0.6"

@ -2,6 +2,17 @@ use helix_dap::{Client, Result, SourceBreakpoint};
#[tokio::main] #[tokio::main]
pub async fn main() -> Result<()> { pub async fn main() -> Result<()> {
let base_config = fern::Dispatch::new().level(log::LevelFilter::Info);
let stderr_config = fern::Dispatch::new()
.format(|out, message, record| out.finish(format_args!("[{}] {}", record.level(), message)))
.chain(std::io::stderr());
base_config
.chain(stderr_config)
.apply()
.expect("Failed to set up logging");
let mut client = Client::start("nc", vec!["127.0.0.1", "7777"], 0)?; let mut client = Client::start("nc", vec!["127.0.0.1", "7777"], 0)?;
println!("init: {:?}", client.initialize().await); println!("init: {:?}", client.initialize().await);

@ -1,6 +1,6 @@
use crate::{Error, Result}; use crate::{Error, Result};
use anyhow::Context; use anyhow::Context;
use log::error; use log::{error, info};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use serde_json::Value; use serde_json::Value;
use std::collections::HashMap; use std::collections::HashMap;
@ -123,8 +123,7 @@ impl Transport {
reader.read_exact(&mut content).await?; reader.read_exact(&mut content).await?;
let msg = std::str::from_utf8(&content).context("invalid utf8 from server")?; let msg = std::str::from_utf8(&content).context("invalid utf8 from server")?;
// TODO: `info!` here info!("<- DAP {}", msg);
println!("<- DAP {}", msg);
// try parsing as output (server response) or call (server request) // try parsing as output (server response) or call (server request)
let output: serde_json::Result<Payload> = serde_json::from_str(msg); let output: serde_json::Result<Payload> = serde_json::from_str(msg);
@ -153,8 +152,7 @@ impl Transport {
server_stdin: &mut BufWriter<ChildStdin>, server_stdin: &mut BufWriter<ChildStdin>,
request: String, request: String,
) -> Result<()> { ) -> Result<()> {
// TODO: `info!` here info!("-> DAP {}", request);
println!("-> DAP {}", request);
// send the headers // send the headers
server_stdin server_stdin
@ -181,8 +179,7 @@ impl Transport {
request_seq, request_seq,
.. ..
}) => { }) => {
// TODO: `info!` here info!("<- DAP success ({}, in response to {})", seq, request_seq);
println!("<- DAP success ({}, in response to {})", seq, request_seq);
if let Payload::Response(val) = msg { if let Payload::Response(val) = msg {
(request_seq, Ok(val)) (request_seq, Ok(val))
} else { } else {
@ -197,8 +194,7 @@ impl Transport {
command, command,
.. ..
}) => { }) => {
// TODO: `error!` here error!(
println!(
"<- DAP error {:?} ({:?}) for command #{} {}", "<- DAP error {:?} ({:?}) for command #{} {}",
message, body, request_seq, command message, body, request_seq, command
); );
@ -212,16 +208,14 @@ impl Transport {
ref seq, ref seq,
.. ..
}) => { }) => {
// TODO: `info!` here info!("<- DAP request {} #{}", command, seq);
println!("<- DAP request {} #{}", command, seq);
client_tx.send(msg).expect("Failed to send"); client_tx.send(msg).expect("Failed to send");
return Ok(()); return Ok(());
} }
Payload::Event(Event { Payload::Event(Event {
ref event, ref seq, .. ref event, ref seq, ..
}) => { }) => {
// TODO: `info!` here info!("<- DAP event {} #{}", event, seq);
println!("<- DAP event {} #{}", event, seq);
client_tx.send(msg).expect("Failed to send"); client_tx.send(msg).expect("Failed to send");
return Ok(()); return Ok(());
} }

Loading…
Cancel
Save