2016-04-10 4 views
0

新しい機能では、*log.Logger(stdlib Logger)をパラメータとして受け入れる第三者のライブラリを使用しますが、私たちは自分でLoggerを実装しています。これはstdlib Loggerと同じ "インターフェース"を持っています。ゴーラン・ロガーの多型?

インタフェースするパラメータの種類を変更するには、ライブラリの所有者を尋ね除く第三のライブラリにロガーの私達の独自の実装を渡す任意のハックの方法はありますか?

答えて

1

そのパッケージには、実際の* log.Loggerを取る場合は、何もありませんlog.Loggerの出力をカスタムライターに設定して、ログステートメントをインターセプトしてから、自分のログステートメントを再ログする以外に、独自のロガーを挿入することができます。

しかし、基本的にすべてのログステートメントを解析して再ログできるようにするのは面白いです。 log.Loggerが書き込みの1つの呼び出しとしてログメッセージを書き込むかどうかは不明です。もしそうであれば、あなたがするすべてがWriteの呼び出しごとに再ログするだけで簡単です。

また、別のライブラリを見つけることや、本当にlog.Loggerに依存する必要がないので、そのライブラリをフォークして変更することを検討することもできます。