mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2026-11-14 12:46:49 +00:00
feat: Move change-log-level to server
This commit is contained in:
5 files changed
+52
-83
No files matched your search
@@ -1,8 +1,7 @@
|
||||
use std::{collections::HashMap, time::SystemTime};
|
||||
use std::collections::HashMap;
|
||||
|
||||
use conduwuit::{
|
||||
Err, Result,
|
||||
utils,
|
||||
utils::{
|
||||
stream::{IterStream, ReadyExt},
|
||||
string::EMPTY,
|
||||
@@ -14,10 +13,7 @@ use resolvematrix::{
|
||||
resolution::ResolvedDestination,
|
||||
server::{MatrixResolver, MatrixResolverBuilder},
|
||||
};
|
||||
use ruma::{
|
||||
OwnedRoomId, OwnedServerName,
|
||||
};
|
||||
use tracing_subscriber::EnvFilter;
|
||||
use ruma::{OwnedRoomId, OwnedServerName};
|
||||
|
||||
use crate::PAGE_SIZE;
|
||||
|
||||
@@ -27,59 +23,6 @@ impl crate::Context<'_> {
|
||||
self.write_str(&message).await
|
||||
}
|
||||
|
||||
pub(super) async fn change_log_level(&self, filter: Option<String>, reset: bool) -> Result {
|
||||
let handles = &["console"];
|
||||
|
||||
if reset {
|
||||
let old_filter_layer = match EnvFilter::try_new(&self.services.server.config.log) {
|
||||
| Ok(s) => s,
|
||||
| Err(e) => return Err!("Log level from config appears to be invalid now: {e}"),
|
||||
};
|
||||
|
||||
match self
|
||||
.services
|
||||
.server
|
||||
.log
|
||||
.reload
|
||||
.reload(&old_filter_layer, Some(handles))
|
||||
{
|
||||
| Err(e) => {
|
||||
return Err!("Failed to modify and reload the global tracing log level: {e}");
|
||||
},
|
||||
| Ok(()) => {
|
||||
let value = &self.services.server.config.log;
|
||||
let out =
|
||||
format!("Successfully changed log level back to config value {value}");
|
||||
return self.write_str(&out).await;
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
if let Some(filter) = filter {
|
||||
let new_filter_layer = match EnvFilter::try_new(filter) {
|
||||
| Ok(s) => s,
|
||||
| Err(e) => return Err!("Invalid log level filter specified: {e}"),
|
||||
};
|
||||
|
||||
match self
|
||||
.services
|
||||
.server
|
||||
.log
|
||||
.reload
|
||||
.reload(&new_filter_layer, Some(handles))
|
||||
{
|
||||
| Ok(()) => {
|
||||
return self.write_str("Successfully changed log level").await;
|
||||
},
|
||||
| Err(e) => {
|
||||
return Err!("Failed to modify and reload the global tracing log level: {e}");
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
Err!("No log level was specified.")
|
||||
}
|
||||
|
||||
pub(super) async fn resolve_true_destination(
|
||||
&self,
|
||||
server_name: OwnedServerName,
|
||||
@@ -182,13 +125,6 @@ impl crate::Context<'_> {
|
||||
.await
|
||||
}
|
||||
|
||||
pub(super) async fn time(&self) -> Result {
|
||||
let now = SystemTime::now();
|
||||
let now = utils::time::format(now, "%+");
|
||||
|
||||
self.write_str(&now).await
|
||||
}
|
||||
|
||||
pub(super) async fn database_stats(
|
||||
&self,
|
||||
property: Option<String>,
|
||||
|
||||
+1
-13
@@ -3,7 +3,7 @@ pub(crate) mod tester;
|
||||
|
||||
use clap::Subcommand;
|
||||
use conduwuit::Result;
|
||||
use ruma::{OwnedEventId, OwnedServerName};
|
||||
use ruma::OwnedServerName;
|
||||
|
||||
use self::tester::TesterCommand;
|
||||
use crate::admin_command_dispatch;
|
||||
@@ -16,18 +16,6 @@ pub enum DebugCommand {
|
||||
message: Vec<String>,
|
||||
},
|
||||
|
||||
/// Change tracing log level/filter on the fly
|
||||
///
|
||||
/// This accepts the same format as the `log` config option.
|
||||
ChangeLogLevel {
|
||||
/// Log level/filter
|
||||
filter: Option<String>,
|
||||
|
||||
/// Resets the log level/filter to the one in your config
|
||||
#[arg(short, long)]
|
||||
reset: bool,
|
||||
},
|
||||
|
||||
/// Runs a server name through Continuwuity's true destination resolution
|
||||
/// process
|
||||
///
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
use std::{fmt::Write, path::PathBuf, sync::Arc};
|
||||
|
||||
use conduwuit::{
|
||||
Err, Result,
|
||||
Err, Result, err,
|
||||
utils::{stream::IterStream, time},
|
||||
warn,
|
||||
};
|
||||
use futures::TryStreamExt;
|
||||
use tracing_subscriber::EnvFilter;
|
||||
|
||||
impl crate::Context<'_> {
|
||||
pub(super) async fn uptime(&self) -> Result {
|
||||
@@ -234,4 +235,37 @@ impl crate::Context<'_> {
|
||||
|
||||
self.write_str(&info).await
|
||||
}
|
||||
|
||||
pub(super) async fn change_log_level(&self, filter: Option<String>, reset: bool) -> Result {
|
||||
let handles = &["console"];
|
||||
|
||||
if reset {
|
||||
let old_filter_layer = EnvFilter::try_new(&self.services.server.config.log)
|
||||
.map_err(|e| err!("Log level from config appears to be invalid now: {e}"))?;
|
||||
self.services
|
||||
.server
|
||||
.log
|
||||
.reload
|
||||
.reload(&old_filter_layer, Some(handles))
|
||||
.map_err(|e| {
|
||||
err!("Failed to modify and reload the global tracing log level: {e}")
|
||||
})?;
|
||||
self.write_str("Successfully changed log level back to config value")
|
||||
.await
|
||||
} else {
|
||||
let filter = filter.ok_or_else(|| err!("No log level was specified."))?;
|
||||
let new_filter_layer = EnvFilter::try_new(filter)
|
||||
.map_err(|e| err!("Invalid log level filter specified: {e}"))?;
|
||||
self.services
|
||||
.server
|
||||
.log
|
||||
.reload
|
||||
.reload(&new_filter_layer, Some(handles))
|
||||
.map_err(|e| {
|
||||
err!("Failed to modify and reload the global tracing log level: {e}")
|
||||
})?;
|
||||
self.write_str("Successfully changed log level back to config value")
|
||||
.await
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -58,4 +58,16 @@ pub enum ServerCommand {
|
||||
|
||||
/// Build information
|
||||
BuildInfo,
|
||||
|
||||
/// Change tracing log level/filter on the fly
|
||||
///
|
||||
/// This accepts the same format as the `log` config option.
|
||||
ChangeLogLevel {
|
||||
/// Log level/filter
|
||||
filter: Option<String>,
|
||||
|
||||
/// Resets the log level/filter to the one in your config
|
||||
#[arg(short, long)]
|
||||
reset: bool,
|
||||
},
|
||||
}
|
||||
@@ -2,9 +2,9 @@ use std::collections::BTreeMap;
|
||||
|
||||
use api::client::{full_user_deactivate, leave_room, recreate_push_rules_and_return};
|
||||
use conduwuit::{
|
||||
Err, Result, debug_warn, info,
|
||||
Err, Result, info,
|
||||
matrix::{Event, pdu::PartialPdu},
|
||||
utils::{self, ReadyExt},
|
||||
utils::{self},
|
||||
warn,
|
||||
};
|
||||
use futures::{FutureExt, StreamExt};
|
||||
@@ -25,7 +25,6 @@ use crate::{
|
||||
};
|
||||
|
||||
const AUTO_GEN_PASSWORD_LENGTH: usize = 25;
|
||||
const BULK_JOIN_REASON: &str = "Bulk force joining this room as initiated by the server admin.";
|
||||
|
||||
impl crate::Context<'_> {
|
||||
pub(super) async fn list_users(
|
||||
|
||||
Reference in new issue
Block a user