aquatic_udp: use log crate instead of eprintln, add LogLevel to Config

This commit is contained in:
Joakim Frostegård 2020-08-13 04:52:50 +02:00
parent dd19f32a2a
commit f4187f4368
6 changed files with 19 additions and 9 deletions

1
Cargo.lock generated
View file

@ -145,6 +145,7 @@ dependencies = [
"hashbrown 0.8.2",
"histogram",
"indexmap",
"log",
"mimalloc",
"mio",
"parking_lot",

View file

@ -21,6 +21,7 @@ crossbeam-channel = "0.4"
hashbrown = "0.8"
histogram = "0.6"
indexmap = "1"
log = "0.4"
mimalloc = { version = "0.1", default-features = false }
mio = { version = "0.7", features = ["udp", "os-poll", "os-util"] }
parking_lot = "0.11"

View file

@ -2,6 +2,8 @@ use std::net::SocketAddr;
use serde::{Serialize, Deserialize};
use aquatic_cli_helpers::LogLevel;
#[derive(Clone, Debug, Serialize, Deserialize)]
#[serde(default)]
@ -13,6 +15,7 @@ pub struct Config {
/// Request workers receive a number of requests from socket workers,
/// generate responses and send them back to the socket workers.
pub request_workers: usize,
pub log_level: LogLevel,
pub network: NetworkConfig,
pub protocol: ProtocolConfig,
pub handlers: HandlerConfig,
@ -22,7 +25,11 @@ pub struct Config {
}
impl aquatic_cli_helpers::Config for Config {}
impl aquatic_cli_helpers::Config for Config {
fn get_log_level(&self) -> Option<LogLevel> {
Some(self.log_level)
}
}
#[derive(Clone, Debug, Serialize, Deserialize)]
@ -108,6 +115,7 @@ impl Default for Config {
Self {
socket_workers: 1,
request_workers: 1,
log_level: LogLevel::Error,
network: NetworkConfig::default(),
protocol: ProtocolConfig::default(),
handlers: HandlerConfig::default(),

View file

@ -147,7 +147,7 @@ pub fn run_request_worker(
for r in responses.drain(..){
if let Err(err) = response_sender.send(r){
eprintln!("error sending response to channel: {}", err);
::log::error!("error sending response to channel: {}", err);
}
}
}

View file

@ -62,7 +62,7 @@ pub fn run_socket_worker(
for r in requests.drain(..){
if let Err(err) = request_sender.send(r){
eprintln!("error sending to request_sender: {}", err);
::log::error!("error sending to request_sender: {}", err);
}
}
@ -103,7 +103,7 @@ fn create_socket(config: &Config) -> ::std::net::UdpSocket {
if recv_buffer_size != 0 {
if let Err(err) = socket.set_recv_buffer_size(recv_buffer_size){
eprintln!(
::log::error!(
"socket: failed setting recv buffer to {}: {:?}",
recv_buffer_size,
err
@ -146,7 +146,7 @@ fn read_requests(
requests.push((request, src));
},
Err(err) => {
eprintln!("request_from_bytes error: {:?}", err);
::log::debug!("request_from_bytes error: {:?}", err);
if let Some(transaction_id) = err.transaction_id {
let opt_message = if err.error.is_some() {
@ -174,7 +174,7 @@ fn read_requests(
break;
}
eprintln!("recv_from error: {}", err);
::log::info!("recv_from error: {}", err);
}
}
}
@ -225,7 +225,7 @@ fn send_responses(
break;
}
eprintln!("send_to error: {}", err);
::log::info!("send_to error: {}", err);
}
}
}

View file

@ -108,14 +108,14 @@ pub fn gather_and_print_statistics(
let num_peers = (torrent.num_seeders + torrent.num_leechers) as u64;
if let Err(err) = peers_per_torrent.increment(num_peers){
eprintln!("error incrementing peers_per_torrent histogram: {}", err)
::log::error!("error incrementing peers_per_torrent histogram: {}", err)
}
}
for torrent in torrents.ipv6.values(){
let num_peers = (torrent.num_seeders + torrent.num_leechers) as u64;
if let Err(err) = peers_per_torrent.increment(num_peers){
eprintln!("error incrementing peers_per_torrent histogram: {}", err)
::log::error!("error incrementing peers_per_torrent histogram: {}", err)
}
}
}