--- /dev/null
+using System;\r
+using System.Text;\r
+using System.IO;\r
+\r
+namespace com.andoutomo.kybernetes.control\r
+{\r
+\r
+\r
+ public enum LogMode\r
+ {\r
+ Error,\r
+ Trace,\r
+ Debug\r
+\r
+ }\r
+ public class KybernetesLogger\r
+ {\r
+ string logpath;\r
+ StreamWriter writer;\r
+\r
+\r
+ public static LogMode CurrentLogMode\r
+ {\r
+ private get;\r
+ set;\r
+ }\r
+\r
+ static KybernetesLogger innerObject;\r
+\r
+ private KybernetesLogger()\r
+ {\r
+ logpath = System.AppDomain.CurrentDomain.BaseDirectory + "kybernetes.log";\r
+ }\r
+ /// <summary>\r
+ /// ログ出力オブジェクト\r
+ /// </summary>\r
+ public static KybernetesLogger Log\r
+ {\r
+ get\r
+ {\r
+ if (innerObject == null)\r
+ {\r
+ innerObject = new KybernetesLogger();\r
+ }\r
+ return innerObject;\r
+ }\r
+ }\r
+ /// <summary>\r
+ /// ログレベル・エラー(常時出力)\r
+ /// </summary>\r
+ /// <param name="logContents"></param>\r
+ public void error(string logContents)\r
+ {\r
+ switch (CurrentLogMode)\r
+ {\r
+ case LogMode.Error:\r
+ case LogMode.Trace:\r
+ case LogMode.Debug:\r
+ sendLog(logContents);\r
+ break;\r
+ default:\r
+ break;\r
+ }\r
+ }\r
+ /// <summary>\r
+ /// ログレベル・トレース(通常時は出力しない)\r
+ /// </summary>\r
+ /// <param name="logContents"></param>\r
+ public void trace(string logContents)\r
+ {\r
+ switch (CurrentLogMode)\r
+ {\r
+ case LogMode.Error:\r
+ break;\r
+ case LogMode.Trace:\r
+ case LogMode.Debug:\r
+ sendLog(logContents);\r
+ break;\r
+ default:\r
+ break;\r
+ }\r
+ }\r
+ /// <summary>\r
+ /// ログレベル・デバッグ(通常/トレース時は出力しない)\r
+ /// </summary>\r
+ /// <param name="logContents"></param>\r
+ public void debug(string logContents)\r
+ {\r
+ switch (CurrentLogMode)\r
+ {\r
+ case LogMode.Error:\r
+ case LogMode.Trace:\r
+ break;\r
+ case LogMode.Debug:\r
+ sendLog(logContents);\r
+ break;\r
+ default:\r
+ break;\r
+ }\r
+ }\r
+\r
+\r
+ private void sendLog(string logContents)\r
+ {\r
+ StringBuilder builder = new StringBuilder();\r
+ builder.Append(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss.fff")).Append("---");\r
+ builder.Append(logContents);\r
+\r
+ try\r
+ {\r
+ writer = new StreamWriter(logpath, true, System.Text.Encoding.GetEncoding("shift_jis"));\r
+ writer.WriteLine(builder.ToString());\r
+ }\r
+ catch (Exception e)\r
+ {\r
+ //ここでは何もしない\r
+ }\r
+ finally\r
+ {\r
+ if (writer != null)\r
+ {\r
+ writer.Close();\r
+ }\r
+\r
+ }\r
+ }\r
+\r
+ }\r
+}\r