Compare commits
2 Commits
3dba620c9b
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f87949dc82 | ||
|
|
44c96d125a |
@@ -837,6 +837,27 @@ pub fn settings_page() -> Html {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
// Logging
|
||||||
|
<div class="card">
|
||||||
|
<h3>{ "Logging" }</h3>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>{ "Log Level" }</label>
|
||||||
|
<select onchange={let config = config.clone(); Callback::from(move |e: Event| {
|
||||||
|
let select: HtmlSelectElement = e.target_unchecked_into();
|
||||||
|
let mut cfg = (*config).clone().unwrap();
|
||||||
|
cfg.log_level = select.value();
|
||||||
|
config.set(Some(cfg));
|
||||||
|
})}>
|
||||||
|
{ for [("error", "Error"), ("warn", "Warning"), ("info", "Info"), ("debug", "Debug"), ("trace", "Trace")].iter().map(|(v, label)| html! {
|
||||||
|
<option value={*v} selected={c.log_level == *v}>{ label }</option>
|
||||||
|
})}
|
||||||
|
</select>
|
||||||
|
<p class="text-muted text-sm" style="margin-top: 0.25rem;">
|
||||||
|
{ "Requires restart to take effect. CLI flags (-v, -vv) override this setting." }
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<button type="submit" class="btn btn-primary">{ "Save Settings" }</button>
|
<button type="submit" class="btn btn-primary">{ "Save Settings" }</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -402,6 +402,12 @@ pub struct AppConfig {
|
|||||||
pub scheduling: SchedulingConfigFe,
|
pub scheduling: SchedulingConfigFe,
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub musicbrainz: MusicBrainzConfigFe,
|
pub musicbrainz: MusicBrainzConfigFe,
|
||||||
|
#[serde(default = "default_log_level")]
|
||||||
|
pub log_level: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
fn default_log_level() -> String {
|
||||||
|
"info".into()
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
|
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
|
||||||
|
|||||||
21
src/main.rs
21
src/main.rs
@@ -35,18 +35,27 @@ struct Cli {
|
|||||||
async fn main() -> anyhow::Result<()> {
|
async fn main() -> anyhow::Result<()> {
|
||||||
let cli = Cli::parse();
|
let cli = Cli::parse();
|
||||||
|
|
||||||
|
let mut config = AppConfig::load(cli.config.as_deref());
|
||||||
|
|
||||||
let filter = match cli.verbose {
|
let filter = match cli.verbose {
|
||||||
0 => "info,shanty_web=info",
|
0 => {
|
||||||
1 => "info,shanty_web=debug",
|
let level = config.log_level.to_lowercase();
|
||||||
_ => "debug,shanty_web=trace",
|
match level.as_str() {
|
||||||
|
"error" => "error".to_string(),
|
||||||
|
"warn" => "warn".to_string(),
|
||||||
|
"debug" => "debug,shanty_web=debug".to_string(),
|
||||||
|
"trace" => "trace,shanty_web=trace".to_string(),
|
||||||
|
_ => "info,shanty_web=info".to_string(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
1 => "info,shanty_web=debug".to_string(),
|
||||||
|
_ => "debug,shanty_web=trace".to_string(),
|
||||||
};
|
};
|
||||||
tracing_subscriber::fmt()
|
tracing_subscriber::fmt()
|
||||||
.with_env_filter(
|
.with_env_filter(
|
||||||
EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new(filter)),
|
EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new(&filter)),
|
||||||
)
|
)
|
||||||
.init();
|
.init();
|
||||||
|
|
||||||
let mut config = AppConfig::load(cli.config.as_deref());
|
|
||||||
if let Some(port) = cli.port {
|
if let Some(port) = cli.port {
|
||||||
config.web.port = port;
|
config.web.port = port;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -393,7 +393,11 @@ async fn trigger_mb_import(
|
|||||||
&format!("Downloading {filename}..."),
|
&format!("Downloading {filename}..."),
|
||||||
);
|
);
|
||||||
if let Err(e) =
|
if let Err(e) =
|
||||||
shanty_data::mb_import::download_dump(filename, ×tamp, &data_dir, |_| {}).await
|
shanty_data::mb_import::download_dump(filename, ×tamp, &data_dir, |msg| {
|
||||||
|
tracing::info!("{msg}");
|
||||||
|
state.tasks.update_progress(&tid, i as u64, 8, msg);
|
||||||
|
})
|
||||||
|
.await
|
||||||
{
|
{
|
||||||
state
|
state
|
||||||
.tasks
|
.tasks
|
||||||
|
|||||||
Reference in New Issue
Block a user