質問: 例えば、Debug時にはStackFrameを使用してスタック情報を取得しているとします。 Releaseオブジェクトでも、そのログ出力処理を残しておいて問題ないのでしょうか。(納品物にpdbファイルを抱え持つことになります。) また、Releaseオブジェクトにてログ出力する際の一般的な方法が他にあるのでしょうか。
回答: StackTrace/StackFrame と .pdb ============================ .pdbファイルがなくてもStackFrameの使用は可能です。ただし関数名とかの実行ファイルから取得できる情報だけとなり、ファイル名や行番号とかの情報はなくなります。 .pdbファイルはあくまで開発デバッグ用のファイルですので製品としてユーザーに提供するのは良くありません。もしどうしても渡す必要がある場合は製品とは分けて納品することをおすすめします。 Releaseオブジェクトでログ出力する方法 ====================== 実行ファイルとは別に設定ファイルを用意してそれによって挙動を変える手法があります。.NETでは標準で「アプリケーション構成ファイル」(.configファイル)として用意されています。 ログ出力には Trace を使うのはいかがでしょうか。 実行ファイルはそのままで.configファイルを編集することによりファイルにログ出力できるようになります。(参考) .configファイルは appSettings を使用して独自のパラメータを実装することが可能ですので、例えばログ出力機能自体が重い場合、このパラメータを利用して機能のON/OFFを実装することが可能です。(参考)