

設定ファイルからログの出力先を読み、そこにその(設定ファイルを読んでいる)アプリケーションのログを出力させたいのですが、以下の問題点があります。
1.複数のクラスがあるため、普通にログ出力用のクラスを作ると、各クラスでインスタンスを作成せねばならない。
2.上記の場合、出力先は設定ファイルによって後から与えられるので、引数などによってファイルパスをもらわなければならない。
3.ログファイル名は「yyyyMMddHHmmss.log」となっているため検索が困難であるから、(1.の方法だと)ファイル名も渡してやる必要がある。
4.ERRORやFATALのみならアプリが終了してもかまわないのでthrowを使ってcatchでログを一括、ということもできるが、TRACEやDEBUGも出力させる必要がある。
Console.Writeのような感じで扱えるのが理想です。
何かよい方法はないものでしょうか?
普通にログ用のクラスを宣言して、他のクラスでログを出力したいなら、ログ出力クラスのインスタンスをコンストラクタに与える引数とするしかないでしょうか?
No.1ベストアンサー
- 回答日時:
staticにすればいいんじゃないですか?
static class Logger { static public void Write(string s) { ... } }
とかして、どっかで初期化(ファイル名の設定など)しとけば、後はいつでも
Logger.Write("hoge")
で。
No.2
- 回答日時:
#1の方に補足。
/// <summary>
/// テキストログパス
/// </summary>
public static string LOG_FILE_PATH = string.Empty;
を、ログ書くクラスに追加してやり、設定ファイルを読み込んだ時点で、パスを与えてやればいいかと思います。
また、1~3はログ書き出しに関することですが、4に関してはプログラム設計の問題ですよね?この辺はちゃんと切り分けておいた方がいいと思います。
また余談ですが、ログ書き出しクラスを生成する場合、ファイルIOでエラーは吐く場合もあるので、catchしたらリトライして書き出す処理を付けておくと、あとでちょっとだけ楽になります。
この回答への補足
有難うございます。
イメージとしては
static ログ出力クラス{
public static string LOG_FILE_PATH = string.Empty;
(ログ出力のためのメソッドなど)
}
設定ファイルを読むクラス{
設定を読むメソッド{
設定を読む;
ログ出力クラス.LOG_FILE_PATH;
}
}
という感じでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSVファイルの時刻の形式について
-
accessでクエリをExcelにエクス...
-
ACCESS2002(or2003)の日付表示...
-
MT-4トレード結果をエクセルに...
-
Thunderbird 受信メールからの...
-
accessのリポートを、excelに出...
-
コマンドプロンプトのテキスト...
-
Delphiでdebug構成とrelease構...
-
AccessのレポートからPDFをペー...
-
エクセル:VBAで自動的にCSV形...
-
LTSpiceの出力データを取り扱う...
-
COBOL FILLER
-
WshShellから起動したbat(ftp)...
-
ショートカットで起動した場合...
-
iTextでPDFを表示させたら日本...
-
テキストファイルの一部分を抽...
-
Eclipseで検索ができなくなった
-
VBAで、JPG写真の撮影日時を読...
-
Zbarというソフトについて
-
【Excel VBA】取り込んだファイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
accessでクエリをExcelにエクス...
-
CSVファイルの時刻の形式について
-
コマンドプロンプトのテキスト...
-
Thunderbird 受信メールからの...
-
COBOL、項目末尾に空白がある場...
-
エクセルが裏で動いたままなん...
-
Acrobat参照設定
-
iTextでPDFを表示させたら日本...
-
VBA 参照先で選んだファイルを...
-
CSV形式で保存するとファイ...
-
COBOL FILLER
-
accessのリポートを、excelに出...
-
excel vbaでのxml出力がわかり...
-
エクセル:VBAで自動的にCSV形...
-
クエリー出力からEXCELに吐き出...
-
テキストファイルをエクセルで...
-
ショートカットで起動した場合...
-
VB6.0でExcel,PDF,Word出力方法
-
AccessのレポートからPDFをペー...
-
マックで作ったPDFファイル...
おすすめ情報