/// <summary> /// コンストラクタ /// </summary> /// <param name="file_name">ログファイル名</param> /// <param name="file_encode">エンコード</param> /// <param name="log_level">出力ログレベル</param> loger_module(string file_name, string file_encode, E_LOG_LEVEL log_level, string max_output_capacity) { _output_level = log_level; _fl_stream = new FileStream(file_name, FileMode.Append, FileAccess.Write, FileShare.Read); _stream = new StreamWriter(_fl_stream, Encoding.GetEncoding(file_encode)); _file_name = file_name; _file_encode = file_encode; int cat_point = file_name.LastIndexOf("."); // 拡張子との区切り文字位置を取得 if (cat_point != -1) { _original_filename = file_name.Substring(0, cat_point); _original_extension = file_name.Substring(cat_point); _division_count = 1; _max_output_size = calc_to_byte(max_output_capacity); } }
/// <summary> /// ログ出力オブジェクトの作成 /// </summary> /// <param name="file_name">出力ファイル名</param> /// <param name="output_dir">出力先ディレクトリ</param> /// <param name="file_encode">出力エンコード</param> /// <param name="debug_flg"></param> public static loger_module create_loger(string file_name, string output_dir, string file_encode, E_LOG_LEVEL log_level, string max_output_capacity, bool debug_flg = false) { try { string log_file_name = ""; string log_dir = path_extracted(file_name); // ディレクト情報の抽出 if (log_dir == "") // パス情報が無ければ、固定値にする { log_dir = output_dir; string join_filename = log_dir + file_name; log_file_name = create_log_filename(join_filename, debug_flg); } else { log_file_name = create_log_filename(file_name, debug_flg); } if (!Directory.Exists(log_dir)) { Directory.CreateDirectory(log_dir); // ディレクトが無ければ作成 } return(new loger_module(log_file_name, file_encode, log_level, max_output_capacity)); } catch (Exception e) { Console.WriteLine(e.Message); return(null); } }