StableVersion4.3/HL_FristAidPlatform_Help/Help.cs

167 lines
5.4 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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");
}
/// <summary>
/// 信息
/// </summary>
/// <param name="msg"></param>
public static void Info(string msg)
{
log.Info(msg);
}
/// <summary>
/// 警告
/// </summary>
/// <param name="msg"></param>
public static void Warn(string msg)
{
log.Warn(msg);
}
/// <summary>
/// 错误
/// </summary>
/// <param name="msg"></param>
/// <param name="exception"></param>
public static void Error(string msg, Exception exception = null)
{
log.Error(msg, exception);
}
/// <summary>
/// 调试
/// </summary>
/// <param name="msg"></param>
public static void Debug(string msg)
{
log.Debug(msg);
}
/// <summary>
/// 严重
/// </summary>
/// <param name="msg"></param>
public static void Fatal(string msg)
{
log.Fatal(msg);
}
/// <summary>
/// DataTable转换成Json字符
/// </summary>
/// <param name="dataTable">数据表</param>
/// <returns></returns>
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;
}
/// <summary>
/// DataSet转换成Json字符,只限标准的JSON数据
/// 例如Json{t1:[{name:'数据name',type:'数据type'}]}
/// 或 Json{t1:[{name:'数据name',type:'数据type'}],t2:[{id:'数据id',gx:'数据gx',val:'数据val'}]}
/// </summary>
/// <param name="dataSet">数据源</param>
/// <returns></returns>
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;
}
/// <summary>
/// 记录错误日志
/// 精确到每分钟
/// </summary>
/// <param name="file_name_prefix">文件名前缀</param>
/// <param name="text">记录内容</param>
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();
}
}
}
}