Skip to content

Commit 0144a7c

Browse files
committed
Fix setOutput to honor passed in variable rather than get from stack.
1 parent 17061ce commit 0144a7c

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

log/api.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ func setOutput(L *lua.LState, logger *luaLogger, output string) error {
5858
case "STDERR":
5959
logger.SetOutput(os.Stderr)
6060
default:
61-
fd, err := os.OpenFile(L.CheckString(1), os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0644)
61+
fd, err := os.OpenFile(output, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0644)
6262
if err != nil {
6363
return err
6464
}

log/test/test_api.lua

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
local log = require("log")
22
local ioutil = require("ioutil")
33

4-
os.remove("./test/test.log")
5-
64
function Test_log(t)
5+
os.remove("./test/test.log")
6+
77
local info, err = log.new("./test/test.log")
88
assert(not err, err)
99

@@ -37,3 +37,15 @@ function Test_log(t)
3737
assert(expect_result == get_result, string.format("expected %s; got %s", expect_result, get_result))
3838
end)
3939
end
40+
41+
function TestSetOutput(t)
42+
-- Ensure that set_output does not result in an error
43+
os.remove("./test/test.log")
44+
local info = log.new('STDERR')
45+
info:set_output("./test/test.log")
46+
info:print("foo bar")
47+
info:close()
48+
local get_result, err = ioutil.read_file("./test/test.log")
49+
assert(not err, err)
50+
assert(get_result == 'foo bar\n')
51+
end

0 commit comments

Comments
 (0)