From f19ba794317a136dfc8aadf1e536dc8a83fed16c Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Thu, 4 Feb 2016 17:49:09 +0100 Subject: loggingmanager: Move logic for adaptive column width into file sink, append tab if disabled (fixes separation between name and level in plain file sinks) --- core/loggingmanager.lua | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/core/loggingmanager.lua b/core/loggingmanager.lua index c4cf4d3a..ee1aa362 100644 --- a/core/loggingmanager.lua +++ b/core/loggingmanager.lua @@ -193,10 +193,19 @@ local function log_to_file(sink_config, logfile) logfile:setvbuf(sink_config.buffer_mode or "line"); end + -- Column width for "source" (used by stdout and console) + local sourcewidth = sink_config.source_width; + return function (name, level, message, ...) if timestamps then write(logfile, os_date(timestamps), " "); end + if sourcewidth then + sourcewidth = math_max(#name+2, sourcewidth); + name = name .. rep(" ", sourcewidth-#name); + else + name = name .. "\t"; + end if ... then write(logfile, name, level, "\t", format(message, ...), "\n"); else @@ -206,19 +215,12 @@ local function log_to_file(sink_config, logfile) end log_sink_types.file = log_to_file; --- Column width for "source" (used by stdout and console) -local sourcewidth = 20; - local function log_to_stdout(sink_config) if not sink_config.timestamps then sink_config.timestamps = false; end - local logtofile = log_to_file(sink_config, stdout); - return function (name, level, message, ...) - sourcewidth = math_max(#name+2, sourcewidth); - name = name .. rep(" ", sourcewidth-#name); - return logtofile(name, level, message, ...); - end + sink_config.source_width = 20; + return log_to_file(sink_config, stdout); end log_sink_types.stdout = log_to_stdout; -- cgit v1.2.3