39 lines
1.0 KiB
Rust
39 lines
1.0 KiB
Rust
extern crate flexi_logger;
|
|
|
|
use tokio_util::sync::CancellationToken;
|
|
|
|
mod config;
|
|
mod server;
|
|
use crate::config::Config;
|
|
use crate::server::server_executor;
|
|
|
|
use flexi_logger::{AdaptiveFormat, Age, Cleanup, Criterion, Duplicate, FileSpec, Logger, Naming};
|
|
|
|
fn main() {
|
|
Logger::try_with_str("info")
|
|
.unwrap()
|
|
.log_to_file(FileSpec::default())
|
|
.rotate(
|
|
Criterion::Age(Age::Day),
|
|
Naming::Timestamps,
|
|
Cleanup::KeepLogFiles(4),
|
|
)
|
|
.adaptive_format_for_stderr(AdaptiveFormat::Detailed)
|
|
.print_message()
|
|
.duplicate_to_stderr(Duplicate::Warn)
|
|
.start_with_specfile("logspec.toml")
|
|
.unwrap();
|
|
|
|
let cfg = Config::get();
|
|
log::info!("cfg: {:#?}", cfg);
|
|
|
|
let token = CancellationToken::new();
|
|
let child_token = token.child_token();
|
|
let handle = std::thread::spawn(move || server_executor(cfg, child_token));
|
|
|
|
std::thread::sleep(std::time::Duration::from_secs(10));
|
|
token.cancel();
|
|
|
|
handle.join().unwrap();
|
|
}
|