Powered By 画RSS

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[C# .NET]テキストファイルに簡易ログを出力する

[C# ,NET] テキストファイルに簡易ログを出力する

.
プログラムの実行開始時と終了時に簡易ログを出力したい。
以下の要件を満たせるようにする。

1)ログはテキストファイルで実行ファイルの配下フォルダに保存
2)ログ形式は、日時と結果文字列
3)日にちが変わっていたらログファイルをローテート

というわけで書く。

できたのがコレ。

class Program
{
    static void Main(string[] args)
    { 
        logrotate(); 
        string resultmsg = "開始";
        logwrite(resultmsg); 

        try
        {
            resultmsg = "正常終了"; 
        } 
        catch (System.Exception msg)
        {
            resultmsg = msg.Message;
        }
        finally
        {
            logwrite(resultmsg);
        }
    }
    private static void logwrite(string result)
    {
        string currentdir = System.IO.Directory.GetCurrentDirectory();
        string logfolder = currentdir + @"\log";
        //実行ファイルと同フォルダにlogフォルダを作成する
        System.IO.Directory.CreateDirectory(logfolder);

        string logfile = currentdir + @"\log\result.log";  

        //現在時刻を取得
        DateTime dtNow = DateTime.Now;
        string timefmt = dtNow.ToString("yyyy/MM/dd HH:mm:ss\t"); 

        Encoding sjisEnc = Encoding.GetEncoding("Shift_JIS");
        System.IO.StreamWriter writer = new System.IO.StreamWriter(logfile, true, sjisEnc); 

        //追記で日時と結果を書き込む
        writer.WriteLine(timefmt + result);
        writer.Close(); 
    }
    private static void logrotate()
    {
        string logfile = System.IO.Directory.GetCurrentDirectory() + @"\log\result.log";

        if (System.IO.File.Exists(logfile))
        {
            DateTime today = DateTime.Now;
            DateTime lastupdttime = System.IO.File.GetLastWriteTime(logfile); 

            string todaytmp = today.ToString("yyyyMMdd");
            string lastupdttimetmp = lastupdttime.ToString("yyyyMMdd"); 

            if (todaytmp != lastupdttimetmp)
            { 
                //最終更新時間を付与したファイル名でリネーム 
                System.IO.File.Move(logfile, logfile + lastupdttime.ToString("yyyyMMddHHmm"));
            }

        }
    }
}



■logwrite
・ 実行ファイルと同フォルダにlogフォルダを作成
・ logフォルダ内にログファイルresult.logを作成、追記記録

■logrotate
・ 現在の日にちとファイルの最終更新日時を比較
・ もし当日のログじゃなかったら、ログファイルをリネーム

共通ライブラリをひっぱってくるのが面倒な時に使用する予定。

にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村
猫でもわかるC#プログラミング 第2版 (猫でもわかるシリーズ) 猫でもわかるC#プログラミング 第2版 (猫でもわかるシリーズ)
粂井 康孝

ソフトバンククリエイティブ
売り上げランキング : 69197

Amazonで詳しく見る
関連記事
スポンサーサイト

この記事へのコメント

トラックバック

URL :

■スポンサードリンク
■プロフィール

ベタログ

管理人 : ベタログ (Twitterアカウント

思い立ったら、ジャンルを気にせず記事にする。それが自由というものだ。
そんな管理方針。
主に取り扱ってる事:オンラインゲーム(SDGO/Travian/ロードオブナイツ)、プログラミングメモ、ネット小説/書籍の感想/観葉植物など。

■まとめ記事
■カテゴリ
■最新記事
■PICKUP

個人的に押しているモノ


魚里高校ダンジョン部! 藻女神様と行く迷宮甲子園
魚里高校ダンジョン部! 藻女神様と行く迷宮甲子園
■感想記事
これぞ青春エンタメ小説。熱いですよ!

オーバーロード1 不死者の王
オーバーロード1 不死者の王
■感想記事
最強軍団が異世界を蹂躙するファンタジー。Web版も読めますが、凄まじい加筆がされているため、Web版読者も楽しめます。
■お勧め品
■最新コメント
■月別アーカイブ
検索フォーム
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。