Actualiza y simplifica la estructura del código
Revisión general del código fuente para asegurar los elementos que deben ser públicos y estandarizar el uso de funciones globales.
This commit is contained in:
parent
67952f6840
commit
b6dd473578
34 changed files with 250 additions and 237 deletions
|
|
@ -1,23 +0,0 @@
|
|||
use crate::{Lazy, trace};
|
||||
use crate::config::SETTINGS;
|
||||
|
||||
use unic_langid::LanguageIdentifier;
|
||||
|
||||
/// Almacena el Identificador de Idioma Unicode ([Unicode Language Identifier]
|
||||
/// (https://unicode.org/reports/tr35/tr35.html#Unicode_language_identifier)) de
|
||||
/// la aplicación, obtenido de `SETTINGS.app.language`.
|
||||
pub static LANGID: Lazy<LanguageIdentifier> = Lazy::new(|| {
|
||||
match SETTINGS.app.language.parse() {
|
||||
Ok(language) => language,
|
||||
Err(_) => {
|
||||
trace::warn!(
|
||||
"Failed to parse language \"{}\". {}. {}. {}.",
|
||||
SETTINGS.app.language,
|
||||
"Unicode Language Identifier not recognized",
|
||||
"Using \"en-US\"",
|
||||
"Check the settings file",
|
||||
);
|
||||
"en-US".parse().unwrap()
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
use crate::{Lazy, base, trace};
|
||||
use crate::{Lazy, base, locale, trace};
|
||||
use crate::config::SETTINGS;
|
||||
use crate::core::{Server, all, server};
|
||||
use crate::core::{Server, global, server};
|
||||
use crate::core::theme::register_theme;
|
||||
use crate::core::module::register_module;
|
||||
|
||||
use actix_web::middleware::normalize;
|
||||
|
|
@ -32,11 +33,20 @@ pub fn run(bootstrap: Option<fn()>) -> Result<Server, std::io::Error> {
|
|||
);
|
||||
}
|
||||
|
||||
// Inicia la traza de la aplicación.
|
||||
// Inicia registro de trazas y eventos.
|
||||
Lazy::force(&server::tracing::TRACING);
|
||||
|
||||
// Asigna identificador de idioma.
|
||||
Lazy::force(&server::langid::LANGID);
|
||||
Lazy::force(&locale::LANGID);
|
||||
|
||||
// Registra los temas predefinidos.
|
||||
register_theme(&base::theme::aliner::AlinerTheme);
|
||||
register_theme(&base::theme::minimal::MinimalTheme);
|
||||
register_theme(&base::theme::bootsier::BootsierTheme);
|
||||
|
||||
// Registra los módulos predeterminados.
|
||||
register_module(&base::module::admin::AdminModule);
|
||||
register_module(&base::module::user::UserModule);
|
||||
|
||||
// Ejecuta la función de inicio de la aplicación.
|
||||
if bootstrap != None {
|
||||
|
|
@ -54,8 +64,8 @@ pub fn run(bootstrap: Option<fn()>) -> Result<Server, std::io::Error> {
|
|||
server::App::new()
|
||||
.wrap(tracing_actix_web::TracingLogger)
|
||||
.wrap(normalize::NormalizePath::new(normalize::TrailingSlash::Trim))
|
||||
.configure(&all::themes)
|
||||
.configure(&all::modules)
|
||||
.configure(&global::themes)
|
||||
.configure(&global::modules)
|
||||
})
|
||||
.bind(format!("{}:{}",
|
||||
&SETTINGS.webserver.bind_address,
|
||||
|
|
|
|||
|
|
@ -4,8 +4,5 @@ pub use actix_web::{
|
|||
|
||||
mod tracing;
|
||||
|
||||
mod langid;
|
||||
pub use langid::LANGID;
|
||||
|
||||
mod main;
|
||||
pub use main::run;
|
||||
|
|
|
|||
|
|
@ -4,6 +4,19 @@ use crate::config::SETTINGS;
|
|||
use tracing_appender::non_blocking::WorkerGuard;
|
||||
use tracing_subscriber::EnvFilter;
|
||||
|
||||
/// Registro de trazas y eventos de la aplicación.
|
||||
///
|
||||
/// Para aumentar el rendimiento, un subproceso dedicado utiliza un sistema de
|
||||
/// escritura sin bloqueo (*non-blocking writer*) que actúa periódicamente en
|
||||
/// vez de enviar cada traza o evento al instante. Si el programa termina
|
||||
/// abruptamente (por ejemplo, por un `panic!` o un `std::process::exit`), es
|
||||
/// posible que algunas trazas o eventos no se envíen.
|
||||
///
|
||||
/// Puesto que las trazas o eventos registrados poco antes de la caída de una
|
||||
/// aplicación suelen ser importantes para diagnosticar la causa del fallo, con
|
||||
/// `Lazy<WorkerGuard>` se garantiza que todos los registros almacenados se
|
||||
/// enviarán antes de terminar la ejecución.
|
||||
|
||||
pub static TRACING: Lazy<WorkerGuard> = Lazy::new(|| {
|
||||
let env_filter = EnvFilter::try_new(&SETTINGS.log.tracing)
|
||||
.unwrap_or(EnvFilter::new("Info"));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue