Reviewed-on: https://git.joinplu.me/Plume/Plume/pulls/868 I read tracing's documentation and thought that is what I need. I decided use it instead of log crate. Thank you for info, igalic.
This commit is contained in:
commit
8539bdaf72
15
Cargo.lock
generated
15
Cargo.lock
generated
@ -2598,6 +2598,7 @@ dependencies = [
|
|||||||
"serde 1.0.118 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde 1.0.118 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"serde_json 1.0.61 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_json 1.0.61 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"shrinkwraprs 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"shrinkwraprs 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"tracing 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"validator 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"validator 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"validator_derive 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"validator_derive 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webfinger 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"webfinger 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -2646,6 +2647,7 @@ dependencies = [
|
|||||||
"shrinkwraprs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"shrinkwraprs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"syntect 4.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"syntect 4.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"tracing 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@ -2704,6 +2706,7 @@ dependencies = [
|
|||||||
"serde_json 1.0.61 (registry+https://github.com/rust-lang/crates.io-index)",
|
"serde_json 1.0.61 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"shrinkwraprs 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
"shrinkwraprs 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"tantivy 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tantivy 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"tracing 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"url 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"url 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"webfinger 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
"webfinger 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
@ -4179,9 +4182,20 @@ dependencies = [
|
|||||||
"cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
"log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"pin-project-lite 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"pin-project-lite 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"tracing-attributes 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
"tracing-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
"tracing-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "tracing-attributes"
|
||||||
|
version = "0.1.11"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2 1.0.24 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"quote 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
"syn 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tracing-core"
|
name = "tracing-core"
|
||||||
version = "0.1.17"
|
version = "0.1.17"
|
||||||
@ -5071,6 +5085,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
"checksum toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f"
|
"checksum toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f"
|
||||||
"checksum tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"
|
"checksum tower-service 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"
|
||||||
"checksum tracing 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)" = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3"
|
"checksum tracing 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)" = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3"
|
||||||
|
"checksum tracing-attributes 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "80e0ccfc3378da0cce270c946b676a376943f5cd16aeba64568e7939806f4ada"
|
||||||
"checksum tracing-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f"
|
"checksum tracing-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f"
|
||||||
"checksum tracing-futures 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c"
|
"checksum tracing-futures 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c"
|
||||||
"checksum traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079"
|
"checksum traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079"
|
||||||
|
@ -30,6 +30,7 @@ shrinkwraprs = "0.2.1"
|
|||||||
validator = "0.8"
|
validator = "0.8"
|
||||||
validator_derive = "0.8"
|
validator_derive = "0.8"
|
||||||
webfinger = "0.4.1"
|
webfinger = "0.4.1"
|
||||||
|
tracing = "0.1.22"
|
||||||
|
|
||||||
[[bin]]
|
[[bin]]
|
||||||
name = "plume"
|
name = "plume"
|
||||||
|
@ -23,6 +23,7 @@ shrinkwraprs = "0.3.0"
|
|||||||
syntect = "4.5.0"
|
syntect = "4.5.0"
|
||||||
tokio = "0.1.22"
|
tokio = "0.1.22"
|
||||||
regex-syntax = { version = "0.6.17", default-features = false, features = ["unicode-perl"] }
|
regex-syntax = { version = "0.6.17", default-features = false, features = ["unicode-perl"] }
|
||||||
|
tracing = "0.1.22"
|
||||||
|
|
||||||
[dependencies.chrono]
|
[dependencies.chrono]
|
||||||
features = ["serde"]
|
features = ["serde"]
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
use activitypub::{Activity, Link, Object};
|
use activitypub::{Activity, Link, Object};
|
||||||
use array_tool::vec::Uniq;
|
use array_tool::vec::Uniq;
|
||||||
|
use tracing::{debug, warn};
|
||||||
use reqwest::r#async::ClientBuilder;
|
use reqwest::r#async::ClientBuilder;
|
||||||
use rocket::{
|
use rocket::{
|
||||||
http::Status,
|
http::Status,
|
||||||
@ -153,10 +154,10 @@ where
|
|||||||
.send()
|
.send()
|
||||||
.and_then(|r| r.into_body().concat2())
|
.and_then(|r| r.into_body().concat2())
|
||||||
.map(move |response| {
|
.map(move |response| {
|
||||||
println!("Successfully sent activity to inbox ({})", inbox);
|
debug!("Successfully sent activity to inbox ({})", inbox);
|
||||||
println!("Response: \"{:?}\"\n", response)
|
debug!("Response: \"{:?}\"\n", response)
|
||||||
})
|
})
|
||||||
.map_err(|e| println!("Error while sending to inbox ({:?})", e)),
|
.map_err(|e| warn!("Error while sending to inbox ({:?})", e)),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
rt.run().unwrap();
|
rt.run().unwrap();
|
||||||
|
@ -32,6 +32,7 @@ shrinkwraprs = "0.2.1"
|
|||||||
diesel-derive-newtype = "0.1.2"
|
diesel-derive-newtype = "0.1.2"
|
||||||
glob = "0.3.0"
|
glob = "0.3.0"
|
||||||
lindera-tantivy = { version = "0.1.3", optional = true }
|
lindera-tantivy = { version = "0.1.3", optional = true }
|
||||||
|
tracing = "0.1.22"
|
||||||
|
|
||||||
[dependencies.chrono]
|
[dependencies.chrono]
|
||||||
features = ["serde"]
|
features = ["serde"]
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
use crate::{Connection, Error, Result};
|
use crate::{Connection, Error, Result};
|
||||||
use diesel::connection::{Connection as Conn, SimpleConnection};
|
use diesel::connection::{Connection as Conn, SimpleConnection};
|
||||||
|
use tracing::info;
|
||||||
use migrations_internals::{setup_database, MigrationConnection};
|
use migrations_internals::{setup_database, MigrationConnection};
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
|
||||||
@ -26,7 +27,7 @@ struct ComplexMigration {
|
|||||||
|
|
||||||
impl ComplexMigration {
|
impl ComplexMigration {
|
||||||
fn run(&self, conn: &Connection, path: &Path) -> Result<()> {
|
fn run(&self, conn: &Connection, path: &Path) -> Result<()> {
|
||||||
println!("Running migration {}", self.name);
|
info!("Running migration {}", self.name);
|
||||||
for step in self.up {
|
for step in self.up {
|
||||||
step.run(conn, path)?
|
step.run(conn, path)?
|
||||||
}
|
}
|
||||||
@ -34,7 +35,7 @@ impl ComplexMigration {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn revert(&self, conn: &Connection, path: &Path) -> Result<()> {
|
fn revert(&self, conn: &Connection, path: &Path) -> Result<()> {
|
||||||
println!("Reverting migration {}", self.name);
|
info!("Reverting migration {}", self.name);
|
||||||
for step in self.down {
|
for step in self.down {
|
||||||
step.run(conn, path)?
|
step.run(conn, path)?
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
use tracing::warn;
|
||||||
use plume_common::activity_pub::{
|
use plume_common::activity_pub::{
|
||||||
inbox::FromId,
|
inbox::FromId,
|
||||||
request::Digest,
|
request::Digest,
|
||||||
@ -41,7 +42,7 @@ pub fn handle_incoming(
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.map_err(|_| {
|
.map_err(|_| {
|
||||||
println!(
|
warn!(
|
||||||
"Rejected invalid activity supposedly from {}, with headers {:?}",
|
"Rejected invalid activity supposedly from {}, with headers {:?}",
|
||||||
actor.username, headers.0
|
actor.username, headers.0
|
||||||
);
|
);
|
||||||
@ -58,7 +59,7 @@ pub fn handle_incoming(
|
|||||||
Ok(match inbox(&rockets, act) {
|
Ok(match inbox(&rockets, act) {
|
||||||
Ok(_) => String::new(),
|
Ok(_) => String::new(),
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
println!("Shared inbox error: {:?}", e);
|
warn!("Shared inbox error: {:?}", e);
|
||||||
format!("Error: {:?}", e)
|
format!("Error: {:?}", e)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
23
src/main.rs
23
src/main.rs
@ -13,6 +13,7 @@ extern crate validator_derive;
|
|||||||
use chrono::Utc;
|
use chrono::Utc;
|
||||||
use clap::App;
|
use clap::App;
|
||||||
use diesel::r2d2::ConnectionManager;
|
use diesel::r2d2::ConnectionManager;
|
||||||
|
use tracing::warn;
|
||||||
use plume_models::{
|
use plume_models::{
|
||||||
db_conn::{DbPool, PragmaForeignKey},
|
db_conn::{DbPool, PragmaForeignKey},
|
||||||
instance::Instance,
|
instance::Instance,
|
||||||
@ -50,12 +51,6 @@ compile_i18n!();
|
|||||||
|
|
||||||
/// Initializes a database pool.
|
/// Initializes a database pool.
|
||||||
fn init_pool() -> Option<DbPool> {
|
fn init_pool() -> Option<DbPool> {
|
||||||
match dotenv::dotenv() {
|
|
||||||
Ok(path) => println!("Configuration read from {}", path.display()),
|
|
||||||
Err(ref e) if e.not_found() => eprintln!("no .env was found"),
|
|
||||||
e => e.map(|_| ()).unwrap(),
|
|
||||||
}
|
|
||||||
|
|
||||||
let manager = ConnectionManager::<Connection>::new(CONFIG.database_url.as_str());
|
let manager = ConnectionManager::<Connection>::new(CONFIG.database_url.as_str());
|
||||||
let mut builder = DbPool::builder()
|
let mut builder = DbPool::builder()
|
||||||
.connection_customizer(Box::new(PragmaForeignKey))
|
.connection_customizer(Box::new(PragmaForeignKey))
|
||||||
@ -69,6 +64,12 @@ fn init_pool() -> Option<DbPool> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
match dotenv::dotenv() {
|
||||||
|
Ok(path) => eprintln!("Configuration read from {}", path.display()),
|
||||||
|
Err(ref e) if e.not_found() => eprintln!("no .env was found"),
|
||||||
|
e => e.map(|_| ()).unwrap(),
|
||||||
|
}
|
||||||
|
|
||||||
App::new("Plume")
|
App::new("Plume")
|
||||||
.bin_name("plume")
|
.bin_name("plume")
|
||||||
.version(env!("CARGO_PKG_VERSION"))
|
.version(env!("CARGO_PKG_VERSION"))
|
||||||
@ -82,6 +83,8 @@ and https://docs.joinplu.me/installation/init for more info.
|
|||||||
"#,
|
"#,
|
||||||
)
|
)
|
||||||
.get_matches();
|
.get_matches();
|
||||||
|
// Initialize Rocket early to load its internal logger
|
||||||
|
let rocket = rocket::custom(CONFIG.rocket.clone().unwrap());
|
||||||
let dbpool = init_pool().expect("main: database pool initialization error");
|
let dbpool = init_pool().expect("main: database pool initialization error");
|
||||||
if IMPORTED_MIGRATIONS
|
if IMPORTED_MIGRATIONS
|
||||||
.is_pending(&dbpool.get().unwrap())
|
.is_pending(&dbpool.get().unwrap())
|
||||||
@ -112,7 +115,7 @@ Then try to restart Plume.
|
|||||||
.expect("main: error on backing up search index directory for recreating");
|
.expect("main: error on backing up search index directory for recreating");
|
||||||
if UnmanagedSearcher::create(&CONFIG.search_index, &CONFIG.search_tokenizers).is_ok() {
|
if UnmanagedSearcher::create(&CONFIG.search_index, &CONFIG.search_tokenizers).is_ok() {
|
||||||
if fs::remove_dir_all(backup_path).is_err() {
|
if fs::remove_dir_all(backup_path).is_err() {
|
||||||
eprintln!(
|
warn!(
|
||||||
"error on removing backup directory: {}. it remains",
|
"error on removing backup directory: {}. it remains",
|
||||||
backup_path.display()
|
backup_path.display()
|
||||||
);
|
);
|
||||||
@ -171,11 +174,11 @@ Then try to restart Plume
|
|||||||
|
|
||||||
let mail = mail::init();
|
let mail = mail::init();
|
||||||
if mail.is_none() && CONFIG.rocket.as_ref().unwrap().environment.is_prod() {
|
if mail.is_none() && CONFIG.rocket.as_ref().unwrap().environment.is_prod() {
|
||||||
println!("Warning: the email server is not configured (or not completely).");
|
warn!("Warning: the email server is not configured (or not completely).");
|
||||||
println!("Please refer to the documentation to see how to configure it.");
|
warn!("Please refer to the documentation to see how to configure it.");
|
||||||
}
|
}
|
||||||
|
|
||||||
let rocket = rocket::custom(CONFIG.rocket.clone().unwrap())
|
let rocket = rocket
|
||||||
.mount(
|
.mount(
|
||||||
"/",
|
"/",
|
||||||
routes![
|
routes![
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use crate::template_utils::{IntoContext, Ructe};
|
use crate::template_utils::{IntoContext, Ructe};
|
||||||
|
use tracing::warn;
|
||||||
use plume_models::{Error, PlumeRocket};
|
use plume_models::{Error, PlumeRocket};
|
||||||
use rocket::{
|
use rocket::{
|
||||||
response::{self, Responder},
|
response::{self, Responder},
|
||||||
@ -49,7 +50,7 @@ pub fn server_error(req: &Request<'_>) -> Ructe {
|
|||||||
#[post("/csrf-violation?<target>")]
|
#[post("/csrf-violation?<target>")]
|
||||||
pub fn csrf_violation(target: Option<String>, rockets: PlumeRocket) -> Ructe {
|
pub fn csrf_violation(target: Option<String>, rockets: PlumeRocket) -> Ructe {
|
||||||
if let Some(uri) = target {
|
if let Some(uri) = target {
|
||||||
eprintln!("Csrf violation while acceding \"{}\"", uri)
|
warn!("Csrf violation while accessing \"{}\"", uri)
|
||||||
}
|
}
|
||||||
render!(errors::csrf(&rockets.to_context()))
|
render!(errors::csrf(&rockets.to_context()))
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
use crate::routes::RespondOrRedirect;
|
use crate::routes::RespondOrRedirect;
|
||||||
use lettre::Transport;
|
use lettre::Transport;
|
||||||
|
use tracing::warn;
|
||||||
use rocket::http::ext::IntoOwned;
|
use rocket::http::ext::IntoOwned;
|
||||||
use rocket::{
|
use rocket::{
|
||||||
http::{uri::Uri, Cookie, Cookies, SameSite},
|
http::{uri::Uri, Cookie, Cookies, SameSite},
|
||||||
@ -155,7 +156,7 @@ pub fn password_reset_request(
|
|||||||
) {
|
) {
|
||||||
if let Some(ref mut mail) = *mail.lock().unwrap() {
|
if let Some(ref mut mail) = *mail.lock().unwrap() {
|
||||||
mail.send(message.into())
|
mail.send(message.into())
|
||||||
.map_err(|_| eprintln!("Couldn't send password reset email"))
|
.map_err(|_| warn!("Couldn't send password reset email"))
|
||||||
.ok();
|
.ok();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,7 @@ use activitypub::{
|
|||||||
collection::{OrderedCollection, OrderedCollectionPage},
|
collection::{OrderedCollection, OrderedCollectionPage},
|
||||||
};
|
};
|
||||||
use diesel::SaveChangesDsl;
|
use diesel::SaveChangesDsl;
|
||||||
|
use tracing::{info, warn};
|
||||||
use rocket::{
|
use rocket::{
|
||||||
http::{ContentType, Cookies},
|
http::{ContentType, Cookies},
|
||||||
request::LenientForm,
|
request::LenientForm,
|
||||||
@ -67,9 +68,9 @@ pub fn details(
|
|||||||
Ok(article) => {
|
Ok(article) => {
|
||||||
Post::from_activity(&fetch_rockets, article)
|
Post::from_activity(&fetch_rockets, article)
|
||||||
.expect("Article from remote user couldn't be saved");
|
.expect("Article from remote user couldn't be saved");
|
||||||
println!("Fetched article from remote user");
|
info!("Fetched article from remote user");
|
||||||
}
|
}
|
||||||
Err(e) => println!("Error while fetching articles in background: {:?}", e),
|
Err(e) => warn!("Error while fetching articles in background: {:?}", e),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user