From 77e9488cbb0c4c7dbb55470ec4cf2bbbe35a5d8d Mon Sep 17 00:00:00 2001 From: Sebastian Reichel Date: Sun, 22 Jul 2012 11:07:44 +0200 Subject: support logging into file --- log.vala | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 log.vala (limited to 'log.vala') diff --git a/log.vala b/log.vala new file mode 100644 index 0000000..a4f9842 --- /dev/null +++ b/log.vala @@ -0,0 +1,39 @@ +namespace Log { + private unowned FileStream file; + private FileStream fileowner; + + public void init() { + set_file(cfg.get_string("config", "logfile")); + GLib.Log.set_default_handler(log_handler); + } + + private void log_handler(string? domain, LogLevelFlags flags, string message) { + TimeVal time = {0}; + time.get_current_time(); + string s = "%.10ld | %15s | %s\n".printf(time.tv_usec, domain, message); + + if(file != null) { + file.printf(s); + file.flush(); + } + } + + public bool set_file(string filename) { + switch(filename) { + case "stdout": + file = stdout; + break; + case "stderr": + file = stderr; + break; + default: + fileowner = FileStream.open(filename, "a"); + file = fileowner; + break; + } + + if(file == null) + return false; + return true; + } +} -- cgit v1.2.3