- 引入 log4net 库,统一日志记录方式,提升可维护性。 - 优化异常处理,增加详细日志记录,增强代码健壮性。 - 调整资源文件引用,新增图标资源,删除无用资源。 - 优化文档事件处理逻辑,改进面板显示与隐藏逻辑。 - 增加对 WPS 环境的支持,动态调整功能行为。 - 禁用部分功能(如常识性检测、客服、升级和帮助)。 - 删除冗余代码,清理注释,统一代码风格。 - 更新程序集版本至 2.2.5,改进调试与生产环境配置。
104 lines
3.8 KiB
C#
104 lines
3.8 KiB
C#
using AIProofread.Controls;
|
|
using log4net.Config;
|
|
using log4net;
|
|
using System;
|
|
using System.IO;
|
|
using log4net.Appender;
|
|
using log4net.Layout;
|
|
using log4net.Repository.Hierarchy;
|
|
|
|
namespace AIProofread
|
|
{
|
|
public class LogHelper
|
|
{
|
|
public static FormLogger LoggerForm;
|
|
|
|
//private static readonly string AppDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
|
|
public static ILog Logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
|
|
|
static LogHelper()
|
|
{
|
|
//log4net.GlobalContext.Properties["APP_DATA"] = Config.APP_LOG_PATH;
|
|
//XmlConfigurator.Configure();
|
|
//Logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
|
|
|
|
Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository();
|
|
PatternLayout layout = new PatternLayout("%date [%thread] %-5level %logger - %message%newline");
|
|
layout.ActivateOptions();
|
|
//string appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
|
|
//string logFilePath = Path.Combine(appDataPath, "YourAppName", "logs");
|
|
|
|
RollingFileAppender roller = new RollingFileAppender();
|
|
roller.File = Config.APP_LOG_PATH;
|
|
roller.AppendToFile = true;
|
|
roller.RollingStyle = RollingFileAppender.RollingMode.Date;
|
|
roller.DatePattern = "yyyy-MM-dd'.txt'";
|
|
roller.StaticLogFileName = false;
|
|
roller.Layout = layout;
|
|
roller.ActivateOptions();
|
|
hierarchy.Root.AddAppender(roller);
|
|
hierarchy.Root.Level = log4net.Core.Level.Info;
|
|
hierarchy.Configured = true;
|
|
}
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="msg"></param>
|
|
public static void Log(string tag, string message)
|
|
{
|
|
string time = DateTime.Now.ToString("HH:mm:ss");
|
|
|
|
// 如果日志窗口已经打开,则显示日志
|
|
if (LoggerForm != null && !LoggerForm.IsDisposed && LoggerForm.Visible)
|
|
{
|
|
LoggerForm.Log(time, tag, message);
|
|
}
|
|
if (!Directory.Exists(Config.APP_LOG_PATH))
|
|
{
|
|
Directory.CreateDirectory(Config.APP_LOG_PATH);
|
|
}
|
|
Logger.Debug($"[{tag}] {message}");
|
|
//try
|
|
//{
|
|
// string path = Config.APP_LOG_PATH + DateTime.Now.ToString("yyyy-MM-dd") + ".txt";
|
|
// StreamWriter streamWriter = File.AppendText(path);
|
|
// streamWriter.WriteLine("***************************[" + tag + "]***************************");
|
|
// streamWriter.WriteLine("消息:" + message);
|
|
// streamWriter.WriteLine("时间:" + time);
|
|
// streamWriter.WriteLine();
|
|
// streamWriter.Flush();
|
|
// streamWriter.Close();
|
|
// streamWriter.Dispose();
|
|
//}
|
|
//catch (Exception) { }
|
|
}
|
|
public static void Log(string msg)
|
|
{
|
|
Log((Config.IS_WPS ? "WPS" : "WORD"), msg);
|
|
}
|
|
public static void Log(Exception e)
|
|
{
|
|
Logger.Error(Config.IS_WPS ? "WPS" : "WORD" + e.ToString(), e);
|
|
//Log(e.Message + "\n" + e.StackTrace);
|
|
}
|
|
public static void Log(string tag, Exception e)
|
|
{
|
|
Logger.Error(tag, e);
|
|
}
|
|
|
|
public static void LogToWeb(string msg)
|
|
{
|
|
if (Config.RUN_IN_DEBUG)
|
|
{
|
|
Globals.ThisAddIn.SendMessageToWeb("DEBUG-LOG", msg);
|
|
}
|
|
}
|
|
|
|
internal static ILog GetLogger(Type type)
|
|
{
|
|
return LogManager.GetLogger(type);
|
|
}
|
|
}
|
|
}
|