loggingmanager: Move logic for adaptive column width into file sink, append tab if...
authorKim Alvefur <zash@zash.se>
Thu, 4 Feb 2016 16:49:09 +0000 (17:49 +0100)
committerKim Alvefur <zash@zash.se>
Thu, 4 Feb 2016 16:49:09 +0000 (17:49 +0100)
core/loggingmanager.lua

index c4cf4d3ae8e897bb084cdd3daa3d57219d5b6273..ee1aa362f30e1b82bb5187be851a32c4df753efb 100644 (file)
@@ -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;