local os_date = os.date;
local getstyle, setstyle = require "util.termcolours".getstyle, require "util.termcolours".setstyle;
+-- COMPAT: This should no longer be needed since the addition of setvbuf calls
if os.getenv("__FLUSH_LOG") then
local io_flush = io.flush;
local _io_write = io_write;
logging_config = config.get("*", "log") or default_logging;
-
for name, sink_maker in pairs(old_sink_types) do
log_sink_types[name] = sink_maker;
end
timestamps = default_timestamp; -- Default format
end
+ if sink_config.buffer_mode ~= false then
+ io.stdout:setvbuf(sink_config.buffer_mode or "line");
+ end
+
return function (name, level, message, ...)
sourcewidth = math_max(#name+2, sourcewidth);
local namelen = #name;
timestamps = default_timestamp; -- Default format
end
+ if sink_config.buffer_mode ~= false then
+ io.stdout:setvbuf(sink_config.buffer_mode or "line");
+ end
+
return function (name, level, message, ...)
sourcewidth = math_max(#name+2, sourcewidth);
local namelen = #name;
if not logfile then
return empty_function;
end
- local write, flush = logfile.write, logfile.flush;
+
+ if sink_config.buffer_mode ~= false then
+ logfile:setvbuf(sink_config.buffer_mode or "line");
+ end
+
+ local write = logfile.write;
local timestamps = sink_config.timestamps;
else
write(logfile, name, "\t" , level, "\t", message, "\n");
end
- flush(logfile);
end;
end