13

私の現在のプロジェクトでは、条件付きで fmt.Println を呼び出すロギング関数を作成しようとしています。

私の現在のログ関数は次のようになります。

func Log(level int, a ...interface{}) {
    if level <= LogLevel {
        fmt.Println(a)
    }
}

しかし、このように呼び出すと、何らかの理由で Log の出力が括弧で囲まれます。

http://play.golang.org/p/Aa8vC54Ih0

package main

import "fmt"

var LogLevel int

func main() {
    fmt.Println("string", 10, 3.1415926)
    LogLevel = 1
    Log(1, "string", 10, 3.1415926)
}

func Log(level int, a ...interface{}) {
    if level <= LogLevel {
        fmt.Println(a)
    }
}

string 10 3.1415926
[string 10 3.1415926]

aこれは、ログの引数が何らかの形で変換されているように見えます。afmt.Println を直接呼び出すのと同じ方法で fmt.Println に渡すにはどうすればよいですか?

4

1 に答える 1