]> git.e2factory.org Git - e2factory.git/commitdiff
Write debuglogfile using eio
authorTobias Ulmer <tu@emlix.com>
Mon, 25 Nov 2013 13:10:33 +0000 (14:10 +0100)
committerTobias Ulmer <tu@emlix.com>
Wed, 16 Nov 2016 14:41:17 +0000 (15:41 +0100)
Signed-off-by: Tobias Ulmer <tu@emlix.com>
generic/e2lib.lua
local/e2tool.lua

index e388998d3218a2cb8d89aa123eacd631d7a6d43f..ce6a3b2cd3c57f2627aac02f66fb2b09c99aae84 100644 (file)
@@ -583,12 +583,11 @@ function e2lib.log(level, msg)
 
         -- write out buffered messages first
         for _,m in ipairs(e2lib.globals.debuglogfilebuffer) do
-            e2lib.globals.debuglogfile:write(m)
+            eio.fwrite(e2lib.globals.debuglogfile, m)
         end
         e2lib.globals.debuglogfilebuffer = {}
 
-        e2lib.globals.debuglogfile:write(log_prefix .. msg .. "\n")
-        e2lib.globals.debuglogfile:flush()
+        eio.fwrite(e2lib.globals.debuglogfile, log_prefix .. msg .. "\n")
     else
         table.insert(e2lib.globals.debuglogfilebuffer, log_prefix .. msg .. "\n")
     end
@@ -672,6 +671,10 @@ function e2lib.cleanup()
     if e2lib.globals.lock then
         e2lib.globals.lock:cleanup()
     end
+
+    if e2lib.globals.debuglogfile then
+        eio.fclose(e2lib.globals.debuglogfile)
+    end
 end
 
 --- exit from the tool, cleaning up temporary files and directories
index 89d05836026f8e24b978235ce875399fcc250ced..e830946a7ba3c11dea40d1c13dc600bfc0099712 100644 (file)
@@ -248,21 +248,32 @@ local function check_tab(tab, keys, inherit)
 end
 
 --- Open debug logfile.
+-- @param info Info table.
+-- @return True on success, false on error.
+-- @return Error object on failure.
 local function opendebuglogfile(info)
-    local rc, re = e2lib.mkdir_recursive(e2lib.join(info.root, "log"))
+    local rc, re, e, logfile, debuglogfile
+
+    rc, re = e2lib.mkdir_recursive(e2lib.join(info.root, "log"))
     if not rc then
-        local e = err.new("error making log directory")
+        e = err.new("error making log directory")
         return false, e:cat(re)
     end
-    local logfile = info.root .. "/log/debug.log"
-    local rc, re = e2lib.rotate_log(logfile)
-    local debuglogfile, msg = io.open(logfile, "w")
+    logfile = e2lib.join(info.root, "log/debug.log")
+    rc, re = e2lib.rotate_log(logfile)
+    if not rc then
+        return false, re
+    end
+
+    debuglogfile, re = eio.fopen(logfile, "w")
     if not debuglogfile then
-        local e = err.new("error opening debug logfile")
-        return false, e:append(msg)
+        e = err.new("error opening debug logfile")
+        return false, e:cat(re)
     end
+
     e2lib.globals.debuglogfile = debuglogfile
-    return true, nil
+
+    return true
 end
 
 --- Load user configuration file.