日志重写
This commit is contained in:
@@ -26,7 +26,7 @@ namespace JinYuan.Helper
|
||||
{
|
||||
bool b = DeleteFile(strPata, 30); //删除该目录下 超过 30天的文件
|
||||
if (b)
|
||||
LogHelper.Instance.WriteLog("已清除30天内过期日志");
|
||||
LoggerHelp.WriteLog("已清除30天内过期日志");
|
||||
//24小时清一次
|
||||
Thread.Sleep(1000 * 60 * 60 * 24);
|
||||
}
|
||||
@@ -75,14 +75,14 @@ namespace JinYuan.Helper
|
||||
}
|
||||
else
|
||||
{
|
||||
LogHelper.Instance.WriteLog("文件被占用,无法操作!");
|
||||
LoggerHelp.WriteLog("文件被占用,无法操作!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
LogHelper.Instance.WriteLog($"文件被占用,无法操作!{err}");
|
||||
LoggerHelp.WriteLog($"文件被占用,无法操作!{err}");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -47,9 +47,6 @@
|
||||
<Reference Include="ICSharpCode.SharpZipLib, Version=1.3.3.11, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\SharpZipLib.1.3.3\lib\net45\ICSharpCode.SharpZipLib.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="log4net">
|
||||
<HintPath>..\LargeSquareOne\bin\Debug\log4net.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MathNet.Numerics, Version=4.15.0.0, Culture=neutral, PublicKeyToken=cd8b63ad3d691a37, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MathNet.Numerics.Signed.4.15.0\lib\net461\MathNet.Numerics.dll</HintPath>
|
||||
</Reference>
|
||||
@@ -65,6 +62,9 @@
|
||||
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NLog, Version=6.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NLog.6.0.2\lib\net46\NLog.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="NPOI.Core, Version=2.6.1.0, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\NPOI.2.6.1\lib\netstandard2.0\NPOI.Core.dll</HintPath>
|
||||
</Reference>
|
||||
@@ -151,10 +151,9 @@
|
||||
<Compile Include="IniConfigHelper.cs" />
|
||||
<Compile Include="IniFileHelper.cs" />
|
||||
<Compile Include="JsonHelper.cs" />
|
||||
<Compile Include="Logger.cs" />
|
||||
<Compile Include="LoggerHelp.cs" />
|
||||
<Compile Include="PLCAlarmParseHelper.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="LogHelper.cs" />
|
||||
<Compile Include="ScanerHook.cs" />
|
||||
<Compile Include="SendDateMQTT.cs" />
|
||||
<Compile Include="StreamIOHelper.cs" />
|
||||
|
||||
@@ -1,188 +0,0 @@
|
||||
using JinYuan.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace JinYuan.Helper
|
||||
{
|
||||
/// <summary>
|
||||
/// 日志操作类
|
||||
/// </summary>
|
||||
public class LogHelper
|
||||
{
|
||||
private static object singleLock = new object();
|
||||
|
||||
/// <summary>
|
||||
/// log日志文件路径
|
||||
/// </summary>
|
||||
public static string logFilePath = string.Empty;
|
||||
|
||||
|
||||
public static LogHelper _instance = null;
|
||||
public static LogHelper Instance
|
||||
{
|
||||
|
||||
get
|
||||
{
|
||||
if (_instance == null)
|
||||
{
|
||||
lock (singleLock)
|
||||
{
|
||||
if (_instance == null)
|
||||
{
|
||||
_instance = new LogHelper();
|
||||
}
|
||||
}
|
||||
}
|
||||
return _instance;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 初始化
|
||||
/// </summary>
|
||||
/// <param name="configPath"></param>
|
||||
public void InitLog(string configPath)
|
||||
{
|
||||
logFilePath = configPath;
|
||||
if (!Directory.Exists(logFilePath))
|
||||
{
|
||||
Directory.CreateDirectory(logFilePath);
|
||||
}
|
||||
//if (!File.Exists(logFilePath))
|
||||
//{
|
||||
// File.Create(logFilePath).Close();
|
||||
//}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 写日志文件数据库日志文件
|
||||
/// </summary>
|
||||
/// <param name="message">消息</param>
|
||||
public void WriteError(string message)
|
||||
{
|
||||
|
||||
AddLog(message, "Error");
|
||||
}
|
||||
|
||||
public void WriteEX(Exception ex)
|
||||
{
|
||||
AddLog(ex.Message + "\r\n" + ex.InnerException + "\r\n" + ex.StackTrace + "\r\n" + ex.Source, "SysErrorLog");
|
||||
}
|
||||
|
||||
public void WriteEX(string ErrorName,Exception ex)
|
||||
{
|
||||
AddLog(ErrorName+ "\r\n"+ex.Message + "\r\n" + ex.InnerException + "\r\n" + ex.StackTrace + "\r\n" + ex.Source, "SysErrorLog");
|
||||
}
|
||||
/// <summary>
|
||||
/// 写日志文件数据库日志文件
|
||||
/// </summary>
|
||||
/// <param name="ex">消息</param>
|
||||
/// <param name="direName">日志存储目录名称</param>
|
||||
public void WriteError(Exception ex, string direName)
|
||||
{
|
||||
AddLog(ex.Message + "\r\n" + ex.InnerException + "\r\n" + ex.StackTrace + "\r\n" + ex.Source, direName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// /
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
/// <param name="direName"></param>
|
||||
public void WriteError(string message, string direName)
|
||||
{
|
||||
AddLog(message, direName);
|
||||
}
|
||||
/// <summary>
|
||||
/// 写日志文件数据库日志文件
|
||||
/// </summary>
|
||||
/// <param name="message">消息</param>
|
||||
public void WriteLog(string message)
|
||||
{
|
||||
|
||||
AddLog(message, "Info");
|
||||
}
|
||||
/// <summary>
|
||||
/// 写日志文件数据库日志文件
|
||||
/// </summary>
|
||||
/// <param name="message">消息</param>
|
||||
/// <param name="direName">日志存储目录名称</param>
|
||||
public void WriteLog(string message, string direName)
|
||||
{
|
||||
|
||||
AddLog(message, direName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 写日志文件数据库日志文件
|
||||
/// </summary>
|
||||
/// <param name="message">消息</param>
|
||||
/// <param name="direName">日志存储目录名称</param>
|
||||
private void AddLog(string message, string direName)
|
||||
{
|
||||
string fileLog = logFilePath;
|
||||
if (fileLog == "")
|
||||
{
|
||||
return;
|
||||
}
|
||||
try
|
||||
{
|
||||
var applicationName = direName;
|
||||
//从宿主配置文件中获取日志文件全路径
|
||||
//所有的接口日志文件放在一个目录下面,跟web站点的目录分开
|
||||
//日志文件一天放一个,按日期分开
|
||||
|
||||
if (string.IsNullOrEmpty(applicationName))
|
||||
{
|
||||
applicationName = "Log";
|
||||
}
|
||||
string logFullPath = fileLog + applicationName;
|
||||
|
||||
if (!Directory.Exists(logFullPath))
|
||||
{
|
||||
Directory.CreateDirectory(logFullPath);
|
||||
}
|
||||
//只保留30天的日志
|
||||
var deletePath = $@"{logFullPath}\{DateTime.Now.AddDays(-30):yyyyMMddHH}.txt";
|
||||
|
||||
if (File.Exists(deletePath))
|
||||
{
|
||||
File.Delete(deletePath);
|
||||
}
|
||||
|
||||
logFullPath = $@"{logFullPath}\{DateTime.Now:yyyyMMddHH}.txt";
|
||||
if (!File.Exists(logFullPath))
|
||||
{
|
||||
using (var fs = new FileStream(logFullPath, FileMode.Create, FileAccess.Write))
|
||||
{
|
||||
StreamWriter sw = new StreamWriter(fs);
|
||||
sw.Close();
|
||||
fs.Close();
|
||||
}
|
||||
}
|
||||
|
||||
using (StreamWriter writer = new StreamWriter(logFullPath, true))
|
||||
{
|
||||
writer.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
|
||||
writer.WriteLine(message);
|
||||
writer.WriteLine(Environment.NewLine);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
catch
|
||||
{
|
||||
// ignored
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,51 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
|
||||
public class Logger
|
||||
{
|
||||
private static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("loginfo");
|
||||
private static readonly log4net.ILog logerror = log4net.LogManager.GetLogger("logerror");
|
||||
private static readonly log4net.ILog logmqtt = log4net.LogManager.GetLogger("logmqtt");
|
||||
|
||||
public static void WriteInfo(string info)
|
||||
{
|
||||
Console.WriteLine(info);
|
||||
if (loginfo.IsInfoEnabled)
|
||||
{
|
||||
loginfo.Info(info);
|
||||
}
|
||||
}
|
||||
|
||||
public static void WriteMqtt(string info)
|
||||
{
|
||||
Console.WriteLine(info);
|
||||
if (logmqtt.IsInfoEnabled)
|
||||
{
|
||||
logmqtt.Info(info);
|
||||
}
|
||||
}
|
||||
|
||||
public static void WriteError(string error)
|
||||
{
|
||||
Console.WriteLine(error);
|
||||
if (logerror.IsErrorEnabled)
|
||||
{
|
||||
logerror.Error(error);
|
||||
}
|
||||
}
|
||||
|
||||
public static void WriteError(string info, Exception ex)
|
||||
{
|
||||
Console.WriteLine(info);
|
||||
if (logerror.IsErrorEnabled)
|
||||
{
|
||||
logerror.Error(info, ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
using NLog;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
public class LoggerHelp
|
||||
{
|
||||
private static readonly NLog.Logger loginfo = LogManager.GetLogger("loginfo");
|
||||
private static readonly NLog.Logger logerror = LogManager.GetLogger("logerror");
|
||||
private static readonly NLog.Logger logmqtt = LogManager.GetLogger("logmqtt");
|
||||
|
||||
private static readonly NLog.Logger logsInfo = LogManager.GetLogger("logsInfo");
|
||||
private static readonly NLog.Logger logsMEStIME = LogManager.GetLogger("logsMEStIME");
|
||||
private static readonly NLog.Logger logsSql = LogManager.GetLogger("logsSql");
|
||||
private static readonly NLog.Logger logsSysErrorLog = LogManager.GetLogger("logsSysErrorLog");
|
||||
private static readonly NLog.Logger logsSysErrorLogcn = LogManager.GetLogger("logsSysErrorLogcn");
|
||||
|
||||
|
||||
public static void WriteInfo(string info) => loginfo.Info(info);
|
||||
|
||||
|
||||
public static void WriteMqtt(string info) => logmqtt.Info(info);
|
||||
|
||||
public static void WriteError(string error) => logerror.Info(error);
|
||||
|
||||
public static void WriteError(string info, Exception ex) => logerror.Error(info, ex);
|
||||
|
||||
|
||||
public static void WriteEX(Exception ex) => logsSysErrorLog.Error(ex.Message + "\r\n" + ex.InnerException + "\r\n" + ex.StackTrace + "\r\n" + ex.Source, "SysErrorLog");
|
||||
|
||||
public static void WriteEX(string ErrorName, Exception ex)
|
||||
{
|
||||
logsSysErrorLog.Error(ErrorName + "\r\n" + ex.Message + "\r\n" + ex.InnerException + "\r\n" + ex.StackTrace + "\r\n" + ex.Source, "SysErrorLog");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 写日志文件数据库日志文件
|
||||
/// </summary>
|
||||
/// <param name="message">消息</param>
|
||||
public static void WriteLog(string message)
|
||||
{
|
||||
// logsInfo.IsInfoEnabled = true;
|
||||
logsInfo.Info(message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 写日志文件数据库日志文件
|
||||
/// </summary>
|
||||
/// <param name="message">消息</param>
|
||||
/// <param name="direName">日志存储目录名称</param>
|
||||
public static void WriteLog(string message, string direName)
|
||||
{
|
||||
switch (direName)
|
||||
{
|
||||
case "Info":
|
||||
logsInfo.Info(message, "Info");
|
||||
break;
|
||||
case "SysErrorLog":
|
||||
logsSysErrorLog.Info(message, "SysErrorLog");
|
||||
break;
|
||||
case "SQL执行":
|
||||
logsSql.Info(message);
|
||||
break;
|
||||
case "MESTime":
|
||||
logsMEStIME.Info(message, "MESTime");
|
||||
break;
|
||||
case "系统报错":
|
||||
logsSysErrorLogcn.Info(message, "系统报错");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ namespace JinYuan.Helper
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
Logger.WriteError($"发送进出站数据错误,{err.Message}",err);
|
||||
LoggerHelp.WriteError($"发送进出站数据错误,{err.Message}",err);
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
@@ -144,7 +144,7 @@ namespace JinYuan.Helper
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
Logger.WriteError($"发送采集项数据错误,{err.Message}",err);
|
||||
LoggerHelp.WriteError($"发送采集项数据错误,{err.Message}",err);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -162,7 +162,7 @@ namespace JinYuan.Helper
|
||||
{
|
||||
if (mqttClient != null)
|
||||
{
|
||||
Logger.WriteMqtt("MQTT 服务器关闭失败");
|
||||
LoggerHelp.WriteMqtt("MQTT 服务器关闭失败");
|
||||
mqttClient.ConnectClose();
|
||||
}
|
||||
|
||||
@@ -177,16 +177,16 @@ namespace JinYuan.Helper
|
||||
OperateResult connect = mqttClient.ConnectServer();
|
||||
if (connect.IsSuccess)
|
||||
{
|
||||
Logger.WriteMqtt("MQTT 连接服务器成功");
|
||||
LoggerHelp.WriteMqtt("MQTT 连接服务器成功");
|
||||
}
|
||||
else
|
||||
{
|
||||
Logger.WriteMqtt("MQTT 无法连接到服务器");
|
||||
LoggerHelp.WriteMqtt("MQTT 无法连接到服务器");
|
||||
}
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
Logger.WriteError($"MQTT 无法连接到服务器: {err.Message}");
|
||||
LoggerHelp.WriteError($"MQTT 无法连接到服务器: {err.Message}");
|
||||
}
|
||||
|
||||
|
||||
@@ -209,16 +209,16 @@ namespace JinYuan.Helper
|
||||
});
|
||||
if (result.IsSuccess)
|
||||
{
|
||||
Logger.WriteMqtt($"发送消息到主题 [{topic}]: {Message}");
|
||||
LoggerHelp.WriteMqtt($"发送消息到主题 [{topic}]: {Message}");
|
||||
}
|
||||
else
|
||||
{
|
||||
Logger.WriteMqtt($"发送消息到主题 [{topic}] 失败: {result.Message}");
|
||||
LoggerHelp.WriteMqtt($"发送消息到主题 [{topic}] 失败: {result.Message}");
|
||||
}
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
Logger.WriteError($"MQTT 无法连接到服务器: {err.Message}");
|
||||
LoggerHelp.WriteError($"MQTT 无法连接到服务器: {err.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -234,22 +234,22 @@ namespace JinYuan.Helper
|
||||
OperateResult Result = mqttClient.SubscribeMessage(Topic); // 订阅A的主题
|
||||
if (Result.IsSuccess)
|
||||
{
|
||||
Logger.WriteMqtt($"订阅成功[{Topic}]");
|
||||
LoggerHelp.WriteMqtt($"订阅成功[{Topic}]");
|
||||
}
|
||||
else
|
||||
{
|
||||
Logger.WriteMqtt($"订阅失败[{Topic}]");
|
||||
LoggerHelp.WriteMqtt($"订阅失败[{Topic}]");
|
||||
}
|
||||
}
|
||||
catch (Exception err)
|
||||
{
|
||||
Logger.WriteError($"订阅失败[{err.Message}]");
|
||||
LoggerHelp.WriteError($"订阅失败[{err.Message}]");
|
||||
}
|
||||
}
|
||||
|
||||
private static void MqttClient_OnMqttMessageReceived(MqttClient client, MqttApplicationMessage message)
|
||||
{
|
||||
Logger.WriteMqtt($"收到服务器信息[{message.ToString()}]");
|
||||
LoggerHelp.WriteMqtt($"收到服务器信息[{message.ToString()}]");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -284,7 +284,7 @@ namespace JinYuan.Helper
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteError($"方法:上传MQTTServer数据,上传失败: {ex.Message}", ex);
|
||||
LoggerHelp.WriteError($"方法:上传MQTTServer数据,上传失败: {ex.Message}", ex);
|
||||
}
|
||||
return messgeJson;
|
||||
}
|
||||
@@ -351,7 +351,7 @@ namespace JinYuan.Helper
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteError($"生成Json数据失败: {ex.Message}", ex);
|
||||
LoggerHelp.WriteError($"生成Json数据失败: {ex.Message}", ex);
|
||||
}
|
||||
return messgejson;
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
<package id="Microsoft.CSharp" version="4.3.0" targetFramework="net472" />
|
||||
<package id="Microsoft.IO.RecyclableMemoryStream" version="2.3.2" targetFramework="net472" />
|
||||
<package id="Newtonsoft.Json" version="13.0.3" targetFramework="net472" />
|
||||
<package id="NLog" version="6.0.2" targetFramework="net472" />
|
||||
<package id="NPOI" version="2.6.1" targetFramework="net472" />
|
||||
<package id="SharpZipLib" version="1.3.3" targetFramework="net472" />
|
||||
<package id="SixLabors.Fonts" version="1.0.0" targetFramework="net472" />
|
||||
|
||||
Reference in New Issue
Block a user