並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 23 件 / 23件

新着順 人気順

slogの検索結果1 - 23 件 / 23件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

slogに関するエントリは23件あります。 golanggologging などが関連タグです。 人気エントリには 『もっと log/slog を使おう』などがあります。
  • もっと log/slog を使おう

    はじめに この記事は Go アドベントカレンダー 2023 の最終日 25 日目の記事です。 皆さん log/slog 使ってますか。便利なのでぜひ使ってください。 slog は構造化ログを出力する為のパッケージで Go 1.21 で導入されました。これまでも zap や zerolog といったサードパーティ製のロガーを使う事で構造化ログを出力する事ができましたが、構造化ログを出力する機能が Go の標準ライブラリになりました。 slog とは 通常の log パッケージは、時刻とメッセージの単純な出力になります。

      もっと log/slog を使おう
    • 🪵 Go1.21 log/slogパッケージ超入門

      はじめに 2023年8月9日(日本の場合)Go1.21がリリースされました🎉。Go1.21ではさまざまな変更点や追加機能が加わります。その中でもGo標準ライブラリに導入される構造化ロギングパッケージlog/slog(以下、slog)を楽しみにしている方は多いのではないでしょうか? 本稿では、slogを実際に触りつつ、機能の解説をしていきます。 TL;DR 本稿の概要をスライドにもまとめているので、ご参考にして下さい。 従来のlogパッケージについて slogの説明に入る前に、Go標準のlogパッケージについて簡単に紹介する。logパッケージを用いると、 io.Writer インターフェースを実装する任意の型にログメッセージを書き込むことができる。しかし以下のような制限があった。 ログレベルをサポートしていない ログレベルはほとんどのログパッケージの定番機能の一つだが、logパッケージには

        🪵 Go1.21 log/slogパッケージ超入門
      • Structured Logging with slog - The Go Programming Language

        The new log/slog package in Go 1.21 brings structured logging to the standard library. Structured logs use key-value pairs so they can be parsed, filtered, searched, and analyzed quickly and reliably. For servers, logging is an important way for developers to observe the detailed behavior of the system, and often the first place they go to debug it. Logs therefore tend to be voluminous, and the ab

          Structured Logging with slog - The Go Programming Language
        • Go公式の構造化ロガー(として提案されている)slogを触ってみたメモ

          Go言語ではながらく公式のロガーとして log パッケージがありました。これは非常にシンプルなもので構造データをうまく表現できなかったりログレベルを分けるということができません。CLIで使うシンプルなインタラクションであればこれで十分なのですが、クラウド上のバックエンドで動かすサービスにとっては構造化ロギングやログレベルの出し分けは事実上必須であり、そのための機能は十分と言えませんでした。 これに対して様々なロガーが3rd party packageとして公開されてきましたが、一方で公式に導入されようとしているロガーもあります。それがslogです。まだ提案の段階ではありますが、現状で使える実装を触ってみたところかなり実用的な段階だなと感じたので、自分用の備忘録を兼ねてメモを残してみます。 サンプルコードはここにも置いてあります。 基本的な使い方 まず基本的な使い方を見てみます。ログ出力用に

            Go公式の構造化ロガー(として提案されている)slogを触ってみたメモ
          • Go 1.21連載始まります&slogをどう使うべきか | フューチャー技術ブログ

            Go 1.21は久々の新しいライブラリが大量追加だったり、既存のパッケージへの改良の多数行われたり、あたらしい組み込み巻数が追加されたりで記事などが書きやすいリリースです。残念ながら、フューチャーで一番Goを使っているプロジェクトが山場で今回はちょっと書き手が少ないのですが、今回もお付き合いいただけるとうれしいです。 1.21の更新内容のまとめダイジェスト 1.18の時に入るといって直前にキャンセルになった、ジェネリクスのためのパッケージslices/mapsの復活 新しい組み込み巻数のmin/max/clearの追加 言語仕様の強化 パッケージの初期化順序が仕様化 型推論ちょっぴり強力に 次期バージョンで入る予定のループ変数が共有されちゃうバグ対策が実験実装 ランタイムの性能改善(いつもの) 深いスタックオーバーフロー時のトレースが見やすく(最新100ではなく、最新50と一番外側の50表

              Go 1.21連載始まります&slogをどう使うべきか | フューチャー技術ブログ
            • log/slogとcontextで妥協しないロギングを実現する - バイセル Tech Blog

              はじめに この記事は バイセルテクノロジーズ Advent Calendar 2024の10日目の記事です。 こんにちは。開発1部の鴨野です。 前日の記事は私、鴨野の「【13分→4分】開発効率向上のためのCloud Buildデプロイ速度改善」でした。 現在はバックエンドエンジニアとして、リユースプラットフォーム「Cosmos」の出張訪問買取アプリケーション「Visit」の開発に携わっています。 今回は、Visitチームで課題となっていた障害対応や問い合わせ対応を改善するために実装したカスタムロガーについてご紹介します。 作成したロガーは、実際に利用する際のサンプルとともに公開しています。なお、この記事で使用したサンプルコードは以下のリポジトリから抜粋したものです。 github.com はじめに なぜカスタムロガーを実装したのか ロガーが満たすべき要件 前提: Visitアプリケーション

                log/slogとcontextで妥協しないロギングを実現する - バイセル Tech Blog
              • Go 1.25以降でのslogについて

                Go言語のプログラムで、動作の記録やエラーの原因調査に欠かせない「ログ」。Go 1.21で標準ライブラリに導入された構造化ログ機能log/slogが、Go 1.25でさらにアップデートされ、これまで少し手間がかかった点が解消され、より便利になりました。 主な変更点は以下の2つです。 1. 複数の情報をまとめて記録しやすくなった (slog.GroupAttrs) ログには、複数の関連する情報(例: ユーザーIDとユーザー名)を一つのグループにまとめて表示したいことがよくあります。 これまで(Go 1.24まで) プログラムの実行中に数が変わるような複数の情報をまとめてグループ化する場合、動作はするものの、少し遠回しで分かりにくい書き方が必要でした。 // Go 1.24までの実装例 attrs := []slog.Attr{slog.String("id", "123"), slog.St

                  Go 1.25以降でのslogについて
                • 構造化ログと実装 -Goのslogによる実践- - Cybozu Inside Out | サイボウズエンジニアのブログ

                  この記事は、CYBOZU SUMMER BLOG FES '24 (クラウド基盤本部 Stage) DAY 4の記事です。 クラウド基盤本部Cloud Platform部の pddg です。cybozu.comのインフラ基盤移行まだまだがんばっています。 今回の記事は、社内向けに書いていた「構造化ログとは何か・Goのslogパッケージをどう使うべきか」という話を一般向けに書き直したものです。なんとなくslogを使っているという状態から、チームでどのようにログを取るべきか方針を決められるようになるくらいの状態に持っていくための一助になればと思います。 背景 構造化ログに求められるもの 機械的に読み取り可能なフォーマット ログメッセージとパラメータの分離 一連の操作を特定するパラメータの付与 適切なメタデータの付与 slogパッケージによる実践 機械的に読み取り可能なフォーマットで出力する グ

                    構造化ログと実装 -Goのslogによる実践- - Cybozu Inside Out | サイボウズエンジニアのブログ
                  • Go公式の構造化ロガー(予定)のslogで秘匿値をログから削除する

                    Go言語ではながらく公式のログ出力にlogパッケージが使われてきました。しかし昨今のクラウド環境などでのロギングでは構造化ログがほぼ必須であり、そのような流れを受けて公式の構造化ログパッケージ slog が提案されています。2023年8月にリリース見込みの Go 1.21 のリリースノートにはすでに掲載されており、1.21 で公式に取り込まれるのはほぼ確実かと考えられます。 背景:絶対にログに秘匿値を出力したくない オンラインサービスで出力されるログは様々な目的で利用されます。例えば、サービスの運用監視のためにログを集約してアラートを発生させたり、サービスの改善のためにログを集約して分析したり、サービスのセキュリティ監視のためにログを集約して不正アクセスを検知したり、などなど。また、ログは監査に利用されることもあり、原則として保管期間中は削除しない、できないということが前提として様々なログ

                      Go公式の構造化ロガー(予定)のslogで秘匿値をログから削除する
                    • Go 1.21 で追加された log/slog を本番環境に実戦投入しました

                      この記事は Go Advent Calendar 2023 7 日目の記事です。 こんにちは。ARIGATOBANK バックエンドエンジニアの富樫です。 私たちのチームでは、バックエンドシステムのすべてを Go 言語で構築しています。これまでロギングライブラリとして主に zap を利用してきましたが、最近 Go 1.21 で追加された log/slog を本番環境の一部サービスで利用し始めました。 この記事では、log/slog を開発や本番環境へ投入するにあたってカスタマイズした実装の詳細について共有します。 log/slog とはGo 1.21 で標準ライブラリに加わった log/slog は、構造化ロギングをサポートするログパッケージです。 slog package — log/slog — Go Packages 基本的な使い方はこんな感じです。 package main impo

                        Go 1.21 で追加された log/slog を本番環境に実戦投入しました
                      • Go言語のloggerをDefault1つで済ませる方法:slog Handlerがcontextの中身を見てよしなにするパターン - Diary of a Perpetual Student

                        先日、kamakura.go #6にて、「slog登場に伴うloggerの取り回し手法の見直し」という題で登壇しました。Go Conference 2024にこの内容でproposalを出していて落選してしまったのですが、kamakura.go #6のテーマ「昔のGo、今のGo」とピッタリだったので応募して発表の機会を頂いたという経緯です。 speakerdeck.com この発表は以下のエントリのrefinement版となる内容です。今度は机上論ではなく実践経験をもとに話を組み立てています。 blog.arthur1.dev loggerの引き回しと、なぜそれが必要だったのか slogの特徴 Logger/Handler Loggerのインタフェースとして、contextを引数に持つ関数が用意される デフォルトLogger contextの中身を見て自動でフィールドを追加するHandle

                          Go言語のloggerをDefault1つで済ませる方法:slog Handlerがcontextの中身を見てよしなにするパターン - Diary of a Perpetual Student
                        • Go 1.21 に入る予定の log/slog パッケージの話 - 誰かの役に立てばいいブログ

                          ログ出力をどうするかっていうのは、Go 書くときに常にちょっとした悩みの種でした。 標準の log パッケージはあるものの、実用には機能が不足していると見なす人が多いためです。 かくいう私もその一人で、近年は Kubernetes 界隈でよく使われている以下を組み合わせていました。 go-logr/logr uber-go/zap + go-logr/zapr logr は所謂 structured logging のための共通インタフェースを提供するパッケージで、uber-go/zap のような著名なログライブラリ向けにアダプタも提供してくれます。 debug, info, warn, error といったいわゆるログレベルも備えていますし、context 経由で logger を渡すこともできるので、便利に活用していました。 ただ、logr は結構使われているとはいえ標準パッケージでは

                            Go 1.21 に入る予定の log/slog パッケージの話 - 誰かの役に立てばいいブログ
                          • slog時代のGoではloggerをcontextで引きまわさなくて良い気がする - Diary of a Perpetual Student

                            Goのloggerを引き回す際に皆さんはどのような手法を取っていますか? グローバル変数にloggerのインスタンスを入れておく contextにloggerのインスタンスを入れておく トレースIDなどを入れたloggerを適宜作ってcontextに格納する 構造体のフィールドにloggerのインスタンスを入れておく(DI) などなど、ソフトウェアの規模や特性を鑑みて各自使い分けているかと思います。 ところで、私は 2. 3. の手法があまり好きではありませんでした。単純に面倒だし美しくありません。contextに入れる、取り出すだけでも数行のコードを毎度書く必要があってダルいな〜と思っていました。けれども、ログにトレースIDなどを入れたいだろうなあと思い、Webサーバの実装においては 2. を渋々選択していました。 さて、Go 1.21ではslogパッケージが登場しました。slogは単に

                              slog時代のGoではloggerをcontextで引きまわさなくて良い気がする - Diary of a Perpetual Student
                            • Go言語の構造化ログ標準ライブラリであるlog/slogについて

                              Go言語のlog/slogパッケージは、Go 1.21で導入された構造化ロギングのための標準ライブラリです。ログをキーと値のペアとして出力することで、人間にとっての可読性だけでなく、機械による処理や分析も容易にします。 主な特徴 レベル付きロギング: Debug, Info, Warn, Errorといったログレベルをサポートし、出力するログの重要度を制御できます。 構造化された出力: デフォルトでは、ログはキーと値のペアで構成されるテキスト形式(key=value)またはJSON形式で出力されます。これにより、ログの検索やフィルタリングが容易になります。 柔軟なハンドラ: slog.Handlerインターフェースを実装することで、ログの出力形式(テキスト、JSONなど)や出力先(標準出力、ファイル、ネットワークなど)をカスタマイズできます。 コンテキスト対応: context.Conte

                                Go言語の構造化ログ標準ライブラリであるlog/slogについて
                              • Go 1.22リリース連載 vet, log/slog, testing/slogtest | フューチャー技術ブログ

                                はじめにTIG 真野です。Go1.22連載の6本目です。 Go 1.22のアップデートのツーリングのうち Vet と、ライブラリのマイナーアップデートである log/slog, testing/slogtest を取り上げて紹介します。 アップデートサマリ Vetでループ変数の変数キャプチャを検知しなくなった #63888 Vetで slice1 = append(slice1) の操作を検知するようになりました #63888 Vetで defer で time.Since() が呼ぶ操作を検知するようになりました #60448 Vetで不正な log/slog なキーと値のペアを検知するようになりました #59407 log/slog で SetLogLoggerLevel()が追加されました #62418 testing/slogtestで Run() 関数が追加されサブテストの制御が

                                  Go 1.22リリース連載 vet, log/slog, testing/slogtest | フューチャー技術ブログ
                                • Logging in Go with Slog: The Ultimate Guide | Better Stack Community

                                  In this article, we'll explore structured logging in Go with a specific focus on the recently introduced log/slog package which aims to bring high-performance, structured, and leveled logging to the Go standard library. The package has its origins in this GitHub discussion opened by Jonathan Amsterdam, which later led to the proposal describing the exact design of the package. Once finalized, it w

                                    Logging in Go with Slog: The Ultimate Guide | Better Stack Community
                                  • Goのslog使い方まとめ - Qiita

                                    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                      Goのslog使い方まとめ - Qiita
                                    • Custom logging with slog Making Logging Fun Again!

                                      Go Conference 2024 talk about slog custom handler.

                                        Custom logging with slog Making Logging Fun Again!
                                      • slog.Handlerのよくある実装ミス

                                        25/9/18 layerx.go #2にて発表 https://layerx.connpass.com/event/365170/

                                          slog.Handlerのよくある実装ミス
                                        • slogパッケージ超入門 Kyoto.go #43 オフラインLT会@マネフォ京都)

                                          Kyoto.go #43 オフラインLT会@マネフォ京都の登壇資料です。 Go1.21で導入予定のslogパッケージの紹介をしました。 合わせて、Blogも公開しておりますので参考にして下さい。 Kyoto.go #43: https://kyotogo.connpass.com/even…

                                            slogパッケージ超入門 Kyoto.go #43 オフラインLT会@マネフォ京都)
                                          • Go 1.25 リリース連載 log/slog | フューチャー技術ブログ

                                            はじめにGo 1.25 リリース連載 の 2 本目です。 本記事では log/slog パッケージ のアップデートについて紹介します。 Go の log/slog パッケージは、Go 1.21 で導入された構造化ロギングをサポートする標準ライブラリです。 本記事では slog についての基本的は割愛しますが、slog の概要やこれまでのアップデート経緯をつかみたい方は、過去のリリース連載記事を参照してください。 Go 1.21 連載始まります&slog をどう使うべきか Go 1.22 リリース連載 vet, log/slog, testing/slogtest アップデートの概要リリースノート を参照してみましょう。 GroupAttrs creates a group Attr from a slice of Attr values. Record now has a Source m

                                              Go 1.25 リリース連載 log/slog | フューチャー技術ブログ
                                            • 【待望】GoのWebフレームワーク echo v5が正式リリース!6年の沈黙を破りGenericsとslogを完全統合

                                              なぜこれほど時間がかかったのか? v4は、Go Modulesという大きな変化に対応した「完成形」の一つでした。その後、Go言語には Generics (1.18) や slog (1.21) といった破壊的とも言える強力な機能が次々と追加されました。 Echoチームは「既存のプロジェクトを壊さない(安定性)」を最優先しながらも、裏では「v5-alpha」として数年間にわたり実験的な開発を続けてきました。そして2026年、ついにこれら全ての言語仕様を飲み込み、「これからの10年」を見据えた設計としてv5が結実したのです。 3. Echo v5 の注目アップデート:ここが変わった! 今回のアップデートで特に注目すべき「目玉機能」を4つピックアップしました。 ① Genericsによる型安全なパラメータ取得 v4ではパスパラメータやクエリパラメータは必ず文字列で受け取る仕様でした。intやbo

                                                【待望】GoのWebフレームワーク echo v5が正式リリース!6年の沈黙を破りGenericsとslogを完全統合
                                              • Go公式の構造化ロガー(予定)のslogの出力を見やすくしてみる

                                                Go言語ではながらく公式のログ出力にlogパッケージが使われてきました。しかし昨今のクラウド環境などでのロギングでは構造化ログがほぼ必須であり、そのような流れを受けて公式の構造化ログパッケージ slog が提案されています。 この記事執筆時点で slog は正式に公式に取り込まれたわけではないですが、 1.21 のマイルストーンにはリストされており、それなりの確度で導入されると思われます。これを受けて自分が開発しているプロダクトでも徐々に slog の導入を進めています。 構造化ロギングのインターフェースが公式で定義されているのは良いことですし、JSONで出力する上でslogの利用は現状特に困ったことはありません。しかし同僚と slog の利用について話していたとき「開発時、コンソールに出力されるログが見づらい」という指摘がありました。確かに言われてみると(近代的なロガーと比べて)ちょっと

                                                  Go公式の構造化ロガー(予定)のslogの出力を見やすくしてみる
                                                1

                                                新着記事