From 98072015c4be78f3bb4bb048b07d261287173b81 Mon Sep 17 00:00:00 2001 From: Daniil Baturin Date: Fri, 23 Dec 2016 05:04:51 +0700 Subject: Make log template and log level configurable. --- data/examples/vyconfd.conf | 2 ++ src/defaults.ml | 4 ++++ src/defaults.mli | 2 ++ src/vyconf_config.ml | 6 ++++++ src/vyconf_config.mli | 2 ++ src/vyconfd.ml | 4 ++-- 6 files changed, 18 insertions(+), 2 deletions(-) diff --git a/data/examples/vyconfd.conf b/data/examples/vyconfd.conf index 85a4523..db9e493 100644 --- a/data/examples/vyconfd.conf +++ b/data/examples/vyconfd.conf @@ -15,3 +15,5 @@ fallback_config = "config.failsafe" socket = "/var/run/vyconfd.sock" pid_file = "/var/run/vyconfd.pid" log_file = "/var/log/vyconfd.log" +log_template = "$(date) $(name)[$(pid)]: $(message)" +log_level = "notice" diff --git a/src/defaults.ml b/src/defaults.ml index ec4772f..b6d0030 100644 --- a/src/defaults.ml +++ b/src/defaults.ml @@ -2,10 +2,14 @@ type vyconf_defaults = { config_file: string; pid_file: string; socket: string; + log_template: string; + log_level: string; } let defaults = { config_file = "/etc/vyconfd.conf"; pid_file = "/var/run/vyconfd.pid"; socket = "/var/run/vyconfd.sock"; + log_template = "$(date) $(name)[$(pid)]: $(message)"; + log_level = "notice"; } diff --git a/src/defaults.mli b/src/defaults.mli index 792bd22..042eced 100644 --- a/src/defaults.mli +++ b/src/defaults.mli @@ -2,6 +2,8 @@ type vyconf_defaults = { config_file: string; pid_file: string; socket: string; + log_template: string; + log_level: string; } val defaults : vyconf_defaults diff --git a/src/vyconf_config.ml b/src/vyconf_config.ml index 7f2ead1..fb0be40 100644 --- a/src/vyconf_config.ml +++ b/src/vyconf_config.ml @@ -10,6 +10,8 @@ type t = { socket: string; pid_file: string; log_file: string option; + log_template: string; + log_level: string; } [@@deriving show] (* XXX: there should be a better way than to fully initialize it @@ -24,6 +26,8 @@ let empty_config = { socket = ""; pid_file = ""; log_file = None; + log_template = ""; + log_level = ""; } @@ -62,6 +66,8 @@ let load filename = (* Optional fields *) let conf = {conf with pid_file = optional_field defaults.pid_file conf_toml "vyconf" "pid_file"} in let conf = {conf with socket = optional_field defaults.socket conf_toml "vyconf" "socket"} in + let conf = {conf with log_template = optional_field defaults.log_template conf_toml "vyconf" "log_template"} in + let conf = {conf with log_level = optional_field defaults.log_level conf_toml "vyconf" "log_level"} in (* log_file is already string option, so we don't need to unwrap *) let conf = {conf with log_file = get_field conf_toml "vyconf" "log_file"} in Result.Ok conf diff --git a/src/vyconf_config.mli b/src/vyconf_config.mli index 36aeb27..ed30b35 100644 --- a/src/vyconf_config.mli +++ b/src/vyconf_config.mli @@ -8,6 +8,8 @@ type t = { socket: string; pid_file: string; log_file: string option; + log_template: string; + log_level: string; } val load : string -> (t, string) result diff --git a/src/vyconfd.ml b/src/vyconfd.ml index c2270dd..84bc0de 100644 --- a/src/vyconfd.ml +++ b/src/vyconfd.ml @@ -8,7 +8,6 @@ let () = Lwt_log.add_rule "*" Lwt_log.Info let daemonize = ref true let config_file = ref defaults.config_file let log_file = ref None -let log_template = ref "$(date): $(message)" (* Global data *) @@ -25,13 +24,14 @@ let args = [ let usage = "Usage: " ^ Sys.argv.(0) ^ " [options]" let main_loop config () = - let%lwt () = Startup.setup_logger !daemonize !log_file !log_template in + let%lwt () = Startup.setup_logger !daemonize !log_file config.log_template in let%lwt () = Lwt_log.notice @@ Printf.sprintf "Starting VyConf for %s" config.app_name in Lwt.return_unit let () = let () = Arg.parse args (fun f -> ()) usage in let config = Startup.load_config !config_file in + let () = Lwt_log.load_rules ("* -> " ^ config.log_level) in let dirs = Directories.make config in Startup.check_dirs dirs; Lwt_main.run @@ main_loop config () -- cgit v1.2.3