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", "hashbrown 0.8.2",
"histogram", "histogram",
"indexmap", "indexmap",
"log",
"mimalloc", "mimalloc",
"mio", "mio",
"parking_lot", "parking_lot",

View file

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

View file

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

View file

@ -147,7 +147,7 @@ pub fn run_request_worker(
for r in responses.drain(..){ for r in responses.drain(..){
if let Err(err) = response_sender.send(r){ 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(..){ for r in requests.drain(..){
if let Err(err) = request_sender.send(r){ 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 recv_buffer_size != 0 {
if let Err(err) = socket.set_recv_buffer_size(recv_buffer_size){ if let Err(err) = socket.set_recv_buffer_size(recv_buffer_size){
eprintln!( ::log::error!(
"socket: failed setting recv buffer to {}: {:?}", "socket: failed setting recv buffer to {}: {:?}",
recv_buffer_size, recv_buffer_size,
err err
@ -146,7 +146,7 @@ fn read_requests(
requests.push((request, src)); requests.push((request, src));
}, },
Err(err) => { Err(err) => {
eprintln!("request_from_bytes error: {:?}", err); ::log::debug!("request_from_bytes error: {:?}", err);
if let Some(transaction_id) = err.transaction_id { if let Some(transaction_id) = err.transaction_id {
let opt_message = if err.error.is_some() { let opt_message = if err.error.is_some() {
@ -174,7 +174,7 @@ fn read_requests(
break; break;
} }
eprintln!("recv_from error: {}", err); ::log::info!("recv_from error: {}", err);
} }
} }
} }
@ -225,7 +225,7 @@ fn send_responses(
break; 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; let num_peers = (torrent.num_seeders + torrent.num_leechers) as u64;
if let Err(err) = peers_per_torrent.increment(num_peers){ 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(){ for torrent in torrents.ipv6.values(){
let num_peers = (torrent.num_seeders + torrent.num_leechers) as u64; let num_peers = (torrent.num_seeders + torrent.num_leechers) as u64;
if let Err(err) = peers_per_torrent.increment(num_peers){ 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)
} }
} }
} }