Compare commits

...

2 Commits

Author SHA1 Message Date
tayttt db5afffa63 为DAL项目添加log4net引用以支持数据库异常日志记录
- 在Txgy.EWS.Client.DAL项目中添加log4net程序集引用
- 添加using System.Reflection指令以支持MethodBase
- 修复RemoteMySQLDataAccess.cs中的日志记录代码
- 更新packages.config添加log4net 2.0.15包引用

现在DAL项目可以成功编译,数据库操作的异常将被详细记录到日志文件中

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
4 days ago
tayttt 25b333ceb9 增强数据库操作日志记录和异常捕获
主要更改:
- 修改log4net配置文件,增加异常堆栈信息和线程ID输出
- 在RemoteMySQLDataAccess中添加详细的异常日志记录
- 为所有数据库操作方法的catch块添加错误日志
- 日志包含方法参数信息,便于定位问题

详情:
1. log4net.config
   - ErrorAppender增加线程ID和异常详情输出
   - DebugAppender增加线程ID和异常详情输出

2. RemoteMySQLDataAccess.cs
   - 添加日志记录器实例
   - 18个catch块添加详细错误日志
   - 日志包含操作参数(时间范围、ID、路径等)
   - 保留原有异常处理逻辑

这将帮助快速定位和重现数据库相关bug。

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
4 days ago

@ -7,11 +7,13 @@ using System.Data.SqlClient;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.Remoting.Contexts;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Txgy.EWS.Client.Common;
using Txgy.EWS.Client.Common.Helpers;
using Txgy.EWS.Client.IDAL;
using Txgy.EWS.Client.Models;
using Txgy.Microseismic.BaseLib.Common;
@ -23,6 +25,7 @@ namespace Txgy.EWS.Client.DAL
{
public class RemoteMySQLDataAccess : IRemoteMySQLDataAccess
{
private static readonly log4net.ILog logger = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
IFreeSql fsql = FreeSqlTencent.tencentRemoteMySQL;
public string saveWavePath = "";
public MySqlConnection RemoteConn { get; set; }
@ -69,8 +72,9 @@ namespace Txgy.EWS.Client.DAL
}
return true;
}
catch
catch (Exception ex)
{
logger.Error("数据库连接失败", ex);
return false;
}
}
@ -131,6 +135,7 @@ namespace Txgy.EWS.Client.DAL
}
catch (Exception ex)
{
logger.Error($"获取事件列表失败 - 开始时间:{startTime}, 结束时间:{endTime}, 页码:{pageIndex}, 每页数量:{perPageCount}", ex);
return null;
}
}
@ -178,7 +183,8 @@ namespace Txgy.EWS.Client.DAL
}
catch (Exception ex)
{
throw ex;
logger.Error($"获取事件列表失败 - 开始时间:{startTime}, 结束时间:{endTime}", ex);
throw;
}
finally
{
@ -231,7 +237,7 @@ namespace Txgy.EWS.Client.DAL
}
catch (Exception ex)
{
//messagebox.show
logger.Error($"获取事件列表失败 - 开始时间:{startTime}, 结束时间:{endTime}, minML:{minML}, maxML:{maxML}", ex);
}
finally
{
@ -309,7 +315,7 @@ namespace Txgy.EWS.Client.DAL
}
catch (Exception ex)
{
//throw ex;
logger.Error($"根据SQL查询事件失败 - QueryStr:{QueryStr}, SortTarget:{ssm}, SortMode:{sm}", ex);
}
finally
{
@ -376,7 +382,8 @@ namespace Txgy.EWS.Client.DAL
}
catch (Exception ex)
{
throw ex;
logger.Error($"获取最新事件失败 - MaxCnt:{MaxCnt}, PreCnt:{PreCnt}", ex);
throw;
}
finally
{
@ -442,7 +449,8 @@ namespace Txgy.EWS.Client.DAL
}
catch (Exception ex)
{
throw ex;
logger.Error($"下载波形数据失败 - 事件时间:{eventTime}, 保存路径:{savePath}, 保存名称:{saveName}, 表名:{tableName}", ex);
throw;
}
finally
{
@ -498,7 +506,7 @@ namespace Txgy.EWS.Client.DAL
}
catch (Exception ex)
{
//messagebox.show
logger.Error($"获取事件详情失败 - 事件ID:{eventID}", ex);
}
finally
{
@ -551,7 +559,8 @@ namespace Txgy.EWS.Client.DAL
}
catch (Exception ex)
{
throw ex;
logger.Error($"获取事件详情失败 - 事件时间:{eventTime}", ex);
throw;
}
finally
{
@ -604,7 +613,8 @@ namespace Txgy.EWS.Client.DAL
}
catch (Exception ex)
{
throw ex;
logger.Error("获取最新事件失败", ex);
throw;
}
finally
{
@ -658,7 +668,8 @@ namespace Txgy.EWS.Client.DAL
}
catch (Exception ex)
{
throw ex;
logger.Error($"获取最新事件失败 - 截止时间:{deadline}", ex);
throw;
}
finally
{
@ -764,9 +775,10 @@ namespace Txgy.EWS.Client.DAL
}
catch (Exception ex)
{
logger.Error($"统计事件数量失败 - 开始时间:{startTime}, 结束时间:{endTime}", ex);
// 异常处理代码
Console.WriteLine($"DownloadDataAsync error: {ex.StackTrace}");
throw ex;
throw;
}
// 如果没有查询到数据,则返回空引用
return 0;
@ -837,9 +849,10 @@ namespace Txgy.EWS.Client.DAL
}
catch (Exception ex)
{
logger.Error($"异步下载波形数据失败 - 事件时间:{gier.EventTime}, 保存路径:{savePath}", ex);
// 异常处理代码
Console.WriteLine($"DownloadDataAsync error: {ex.StackTrace}");
throw ex;
throw;
}
finally
{
@ -906,9 +919,10 @@ namespace Txgy.EWS.Client.DAL
}
catch (Exception ex)
{
logger.Error($"异步下载JSON数据失败 - 事件时间:{gier.EventTime}, 保存路径:{savePath}", ex);
// 异常处理代码
Console.WriteLine($"DownloadDataAsync error: {ex.StackTrace}");
throw ex;
throw;
}
finally
{
@ -975,9 +989,10 @@ namespace Txgy.EWS.Client.DAL
catch (Exception ex)
{
_semaphore.Release();
logger.Error($"查询和下载数据失败 - 事件ID:{eventID}, 保存路径:{savePath}", ex);
// 异常处理代码
Console.WriteLine($"QueryAndDownloadDataAsync error: {ex.StackTrace}");
throw ex;
throw;
}
}
@ -1043,9 +1058,10 @@ namespace Txgy.EWS.Client.DAL
catch (Exception ex)
{
_semaphore.Release();
logger.Error($"按ID查询和下载数据失败 - 事件ID:{eventID}, 保存路径:{savePath}", ex);
// 异常处理代码
Console.WriteLine($"QueryAndDownloadDataAsync error: {ex.StackTrace}");
throw ex;
throw;
}
}
public async Task QueryEventByIDAsync(int eventID, string savePath, Action<GridItemEventResult> callback)
@ -1110,9 +1126,10 @@ namespace Txgy.EWS.Client.DAL
catch (Exception ex)
{
_semaphore.Release();
logger.Error($"按ID查询事件失败 - 事件ID:{eventID}, 保存路径:{savePath}", ex);
// 异常处理代码
Console.WriteLine($"QueryAndDownloadDataAsync error: {ex.StackTrace}");
throw ex;
throw;
}
}
public List<GridItemEventResult> GetLastEvents(int lastEventID)
@ -1205,7 +1222,8 @@ namespace Txgy.EWS.Client.DAL
}
catch (Exception ex)
{
throw ex;
logger.Error($"获取最新事件失败 - 数量:{QueryCount}", ex);
throw;
}
finally
{
@ -1261,8 +1279,8 @@ namespace Txgy.EWS.Client.DAL
}
catch (Exception ex)
{
//messagebox.show
throw ex;
logger.Error($"获取网格事件失败 - 开始时间:{startTime}, 结束时间:{endTime}, minML:{minML}, maxML:{maxML}", ex);
throw;
}
finally
{

@ -62,6 +62,9 @@
<Reference Include="K4os.Hash.xxHash, Version=1.0.6.0, Culture=neutral, PublicKeyToken=32cd54395057cec3, processorArchitecture=MSIL">
<HintPath>..\packages\K4os.Hash.xxHash.1.0.6\lib\net46\K4os.Hash.xxHash.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=2.0.15.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\packages\log4net.2.0.15\lib\net45\log4net.dll</HintPath>
</Reference>
<Reference Include="MySql.Data, Version=8.0.30.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<HintPath>..\packages\MySql.Data.8.0.30\lib\net48\MySql.Data.dll</HintPath>
</Reference>

@ -22,4 +22,5 @@
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net48" />
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net48" />
<package id="System.Threading.Tasks.Extensions" version="4.5.2" targetFramework="net48" />
<package id="log4net" version="2.0.15" targetFramework="net48" />
</packages>

@ -34,8 +34,10 @@
<conversionPattern value="
%n【日志级别】%-5level
%n【记录时间】%date
%n【线程ID】[%thread]
%n【错误位置】%logger 属性[%property{NDC}]
%n【错误描述】%message
%n【异常详情】%exception
%n【错误详情】%newline"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter,log4net">
@ -62,8 +64,7 @@
<layout type="log4net.Layout.PatternLayout">
<!--输出格式 模板-->
<!--样例INFO 2008-03-26 13:42:32, Log4NetDemo.MainClass [(null)] - info-->
<!--<conversionPattern value="%newline %n记录时间%date %n线程ID:[%thread] %n日志级别 %-5level %n错误描述%message%newline %n"/>-->
<conversionPattern value="%[-2level] %date %logger 属性[%property{NDC}] %message %n"/>
<conversionPattern value="%[-2level] %date [%thread] %logger 属性[%property{NDC}] %message %exception %n"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter,log4net">
<levelMin value="DEBUG" />

Loading…
Cancel
Save