golangのlog.Printlnとfmt.Printlnって何が違うんだ?と唐突に思った
こんにちは、つじたく(@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パッケージの使い方をしているのか勉強してみたいですね。
おわり!!
追記
@Tsuji_Taku50 あと、stdoutに出るかstderrに出るかという違いがあります。
— nobonobo🐦 (@nobonobo) 2017年5月1日
ありがとうございますm( )m