using log4net; using log4net.Config; using log4net.Repository; using Newtonsoft.Json; using Newtonsoft.Json.Converters; using System; using System.Data; using System.IO; namespace HL_FristAidPlatform_Help { public class Help { private static ILoggerRepository repository { get; set; } private static ILog _log; public static ILog log { get { if (_log == null) { Configure(); } return _log; } } public static void Configure(string repositoryName = "NETCoreRepository", string configFile = "log4net.config") { repository = LogManager.CreateRepository(repositoryName); XmlConfigurator.Configure(repository, new FileInfo(configFile)); _log = LogManager.GetLogger(repositoryName, "RollingLogFileAppender"); } /// /// 信息 /// /// public static void Info(string msg) { log.Info(msg); } /// /// 警告 /// /// public static void Warn(string msg) { log.Warn(msg); } /// /// 错误 /// /// /// public static void Error(string msg, Exception exception = null) { log.Error(msg, exception); } /// /// 调试 /// /// public static void Debug(string msg) { log.Debug(msg); } /// /// 严重 /// /// public static void Fatal(string msg) { log.Fatal(msg); } /// /// DataTable转换成Json字符 /// /// 数据表 /// public static string DataTableToJsonStr(DataTable dataTable) { string JsonStr = string.Empty; if (dataTable.Rows.Count > 0) { IsoDateTimeConverter timeConverter = new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" }; foreach (DataRow item in dataTable.Rows) { string row = ""; for (int i = 0; i < dataTable.Columns.Count; i++) { row += JsonConvert.SerializeObject(dataTable.Columns[i].ColumnName) + ":"; //row += JsonConvert.SerializeObject(item[i]) + ","; row += JsonConvert.SerializeObject(item[i], Formatting.Indented, timeConverter) + ",";//时间字段格式化,去掉字符T } row = row.Remove(row.Length - 1); JsonStr += "{" + row + "}" + ","; } JsonStr = JsonStr.Remove(JsonStr.Length - 1); } JsonStr = "[" + JsonStr + "]"; return JsonStr; } /// /// DataSet转换成Json字符,只限标准的JSON数据 /// 例如:Json={t1:[{name:'数据name',type:'数据type'}]} /// 或 Json={t1:[{name:'数据name',type:'数据type'}],t2:[{id:'数据id',gx:'数据gx',val:'数据val'}]} /// /// 数据源 /// public static string DataSetToJsonStr(DataSet dataSet) { string JsonStr = string.Empty; if (dataSet.Tables.Count > 0) { int i = 0; foreach (DataTable table in dataSet.Tables) { if (table.Rows.Count > 0) { i++; string tableName = "table" + i; JsonStr += "\"" + tableName + "\"" + ":" + DataTableToJsonStr(table) + ","; } } } if (JsonStr.Length > 0) { JsonStr = JsonStr.Remove(JsonStr.Length - 1); JsonStr = "{" + JsonStr + "}"; } return JsonStr; } /// /// 记录错误日志 /// 精确到每分钟 /// /// 文件名前缀 /// 记录内容 public static void WriteErrorLog(string file_name_prefix = "", string text = "") { if (string.IsNullOrEmpty(file_name_prefix)) { file_name_prefix = "Debug"; } string path = AppDomain.CurrentDomain.BaseDirectory; path = Path.Combine(path, "logs\\"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } string fileFullName = Path.Combine(path, string.Format("{0}{1}.txt", file_name_prefix, DateTime.Now.ToString("yyyyMMdd-HHmm"))); using (StreamWriter output = File.AppendText(fileFullName)) { output.WriteLine(text); output.Close(); } } } }