From af15bb717221c0fa8319b141023d625e5044da14 Mon Sep 17 00:00:00 2001 From: Patrick Haun Date: Fri, 4 Oct 2024 11:15:10 +0200 Subject: [PATCH] feat: add min_size and make it default --- README.md | 1 + default_config.toml | 2 +- src/template.rs | 13 ++++++++++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 4e47c7d..5442129 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,7 @@ handlebar helpers: - uppercase - level_style - fixed_size 10 +- min_size 10 ## NO_COLOR diff --git a/default_config.toml b/default_config.toml index afa8ae0..ac0b8e7 100644 --- a/default_config.toml +++ b/default_config.toml @@ -4,6 +4,6 @@ dump_all_exclude = [] always_print_fields = [] level_keys = ["level", "severity", "log.level", "loglevel"] main_line_format = "{{bold(fixed_size 19 fblog_timestamp)}} {{level_style (uppercase (fixed_size 5 fblog_level))}}:{{#if fblog_prefix}} {{bold(cyan fblog_prefix)}}{{/if}} {{fblog_message}}" -additional_value_format = "{{bold (color_rgb 150 150 150 (fixed_size 25 key))}}: {{value}}" +additional_value_format = "{{bold (color_rgb 150 150 150 (min_size 25 key))}}: {{value}}" [level_map] diff --git a/src/template.rs b/src/template.rs index f95344b..e0baf3f 100644 --- a/src/template.rs +++ b/src/template.rs @@ -4,7 +4,7 @@ use yansi::{Color, Paint}; pub static DEFAULT_MAIN_LINE_FORMAT: &str = "{{bold(fixed_size 19 fblog_timestamp)}} {{level_style (uppercase (fixed_size 5 fblog_level))}}:{{#if fblog_prefix}} {{bold(cyan fblog_prefix)}}{{/if}} {{fblog_message}}"; -pub static DEFAULT_ADDITIONAL_VALUE_FORMAT: &str = "{{bold (color_rgb 150 150 150 (fixed_size 25 key))}}: {{value}}"; +pub static DEFAULT_ADDITIONAL_VALUE_FORMAT: &str = "{{bold (color_rgb 150 150 150 (min_size 25 key))}}: {{value}}"; pub fn fblog_handlebar_registry(main_line_format: String, additional_value_format: String) -> Handlebars<'static> { handlebars_helper!(bold: |t: str| { @@ -67,12 +67,23 @@ pub fn fblog_handlebar_registry(main_line_format: String, additional_value_forma } }); + handlebars_helper!(min_size: |isize: u64, t: str| { + let x = t.to_string(); + let size = isize.try_into().expect("should fit"); + if x.len() < size { + format!("{}{}", " ".repeat(size - x.len()), x) + } else { + x + } + }); + let mut reg = Handlebars::new(); reg.register_escape_fn(Box::new(no_escape)); reg.register_helper("bold", Box::new(bold)); reg.register_helper("uppercase", Box::new(uppercase)); reg.register_helper("fixed_size", Box::new(fixed_size)); + reg.register_helper("min_size", Box::new(min_size)); reg.register_helper("level_style", Box::new(level_style)); reg.register_helper("yellow", Box::new(yellow));