エンジニアはこわくない

雑記とかエンジニアっぽい内容を好きなように書く場所

golangのlog.Printlnとfmt.Printlnって何が違うんだ?と唐突に思った


スポンサーリンク

f:id:tsujitaku50:20170224131252j:plain

こんにちは、つじたく(@Tsuji_Taku50)です。

いつもどおりgolangを書いたり勉強したりしていたのですが、

個人でgolangを書いているとデバック出力のためにfmt.Printlnと使っていました。

ただgolangにはlogパッケージが存在しています。

あれ、そういえばlogパッケージって使った覚えがないな・・・と思ったので

実際に試してみました。

実際に比べてみました

そんな難しいことは一切していません。

以下のコードを実行して、出力される内容と比べてみました。

  • 実行したコード
func main() {
    fmt.Println("Hello fmt")
    log.Println("Hello log")
}
  • 出力された内容
Hello fmt   ← fmtパッケージ
2017/05/01 09:00:34 Hello log    ← logパッケージ

となりました。

結果を見ると、fmtパッケージよりもlogパッケージのほうが(多少は)詳しい内容が表示されるようです。

確かにlogパッケージfmtパッケージのコードを見るとlogパッケージのほうが詳しい内容を出力する結果になっているようです。

(始めからコード見ろよというツッコミはヤメてください笑)

まとめ

これからはデバック出力するときはfmt.Printlnではなく、log.Printlnを使っていこうと思います。

golangのlogパッケージについては個人的にまだまだ知らないことが多いのですが、「ログレベルでの出し分けが出来ない」ようです。

どうやってプロジェクトでlogパッケージ使うだ・・・??

一度ちゃんとlogパッケージ周りについて調べて、golang使いの方達がどのようなlogパッケージの使い方をしているのか勉強してみたいですね。

おわり!!

追記

Twitternobonoboさんに教えて頂きました!

ありがとうございますm( )m