using NLog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace FATrace.WPLApp.Services
{
///
/// 日志服务
///
public class LogService : ILogService
{
private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); // 初始化日志类
private static bool IsQueryNoise(string msg)
{
if (string.IsNullOrWhiteSpace(msg)) return false;
return msg.IndexOf("查询开始", StringComparison.OrdinalIgnoreCase) >= 0
|| msg.IndexOf("查询完成", StringComparison.OrdinalIgnoreCase) >= 0
|| msg.IndexOf("记录数", StringComparison.OrdinalIgnoreCase) >= 0;
}
///
/// 调试日志
///
/// 日志内容
public void Debug(string msg) => Logger.Debug(msg);
public void Debug(string msg, Exception ex) => Logger.Debug(ex, msg);
///
/// 信息日志
///
/// 日志内容
///
/// 适用大部分场景
/// 1.记录日志文件
///
public void Info(string msg)
{
if (IsQueryNoise(msg)) return;
Logger.Info(msg);
}
public void Info(string msg, Exception ex)
{
if (IsQueryNoise(msg)) return;
Logger.Info(ex, msg);
}
///
/// 错误日志
///
/// 日志内容
///
/// 适用异常,错误日志记录
/// 1.记录日志文件
///
public void Error(string msg) => Logger.Error(msg);
public void Error(string msg, Exception ex) => Logger.Error(ex, msg);
public void Error(Exception ex) => Logger.Error(ex);
///
/// 严重致命错误日志
///
/// 日志内容
///
/// 1.记录日志文件
/// 2.控制台输出
///
public void Fatal(string msg) => Logger.Fatal(msg);
public void Fatal(string msg, Exception ex) => Logger.Fatal(ex, msg);
///
/// 警告日志
///
/// 日志内容
///
/// 1.记录日志文件
/// 2.发送日志邮件
///
public void Warn(string msg) => Logger.Warn(msg);
public void Warn(string msg, Exception ex) => Logger.Warn(ex, msg);
}
}