aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorFuwn <[email protected]>2020-10-26 19:03:53 -0700
committerFuwn <[email protected]>2020-10-26 19:03:53 -0700
commit9742614a1dc4699c1f2c69d923d402237672335d (patch)
treea49f7d834372f37cef06b30a28ff1b40bdfaa079 /src/main.rs
parentCreate README.md (diff)
downloaddep-core-next-9742614a1dc4699c1f2c69d923d402237672335d.tar.xz
dep-core-next-9742614a1dc4699c1f2c69d923d402237672335d.zip
repo: push main from local to remote
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
new file mode 100644
index 0000000..e4235a0
--- /dev/null
+++ b/src/main.rs
@@ -0,0 +1,63 @@
+#[macro_use] extern crate log;
+#[macro_use] extern crate wisp;
+extern crate chrono;
+extern crate fern;
+extern crate kankyo;
+
+use fern::colors::{Color, ColoredLevelConfig};
+use wisp::WispClient;
+
+fn main() {
+ kankyo::load().expect("Failed to load .env file.");
+ fern_setup().expect("Failed to apply Fern settings.");
+ let mut client = WispClient::new();
+ check_error!(client.start());
+}
+
+fn fern_setup() -> Result<(), log::SetLoggerError> {
+ let colours = ColoredLevelConfig::new()
+ .trace(Color::Magenta)
+ .debug(Color::Cyan)
+ .info(Color::Green)
+ .warn(Color::Yellow)
+ .error(Color::Red);
+
+
+ let term_out = fern::Dispatch::new()
+ .format(move |out, message, record| {
+ out.finish(format_args!(
+ "{time} {level:level_width$}{target:target_width$}> {msg}",
+ time = chrono::Utc::now().format("%F %T"),
+ level = colours.color(record.level()),
+ target = format!("{}:{}", record.target(), record.line().unwrap_or(0)),
+ msg = message,
+ level_width = 8,
+ target_width = 60
+ ))
+ })
+ .chain(std::io::stdout())
+ .into_shared();
+
+ let file_out = fern::Dispatch::new()
+ .format(|out, message, record| {
+ out.finish(format_args!(
+ "{time} {level:level_width$}{target:target_width$}> {msg}",
+ time = chrono::Utc::now().format("%F %T"),
+ level = record.level(),
+ target = format!("{}:{}", record.target(), record.line().unwrap_or(0)),
+ msg = message,
+ level_width = 8,
+ target_width = 60
+ ))
+ })
+ .chain(fern::log_file("output.log").expect("Failed to load log file"))
+ .into_shared();
+
+ fern::Dispatch::new()
+ .level(log::LevelFilter::Info)
+ .level_for("serenity", log::LevelFilter::Debug)
+ .level_for("wisp", log::LevelFilter::Debug)
+ .chain(term_out)
+ .chain(file_out)
+ .apply()
+}