c# - C#数据库表中日志条目的极端重复
问题描述
这个 C# 类在我的 Oracle DB 表中产生了很多重复,我如何优化修复它以不这样做,但仍然会生成日志/错误报告?我已经包含了创建日志的方法的代码。
DB表中重复的屏幕截图:
CreateLogEntryForAgent()
public static ApplicationLogEntry CreateLogEntryForAgent(string logText, LogTypes type) {
int agentId = 0;
int applicationVersionId = 0;
if(Environment.CurrentAgent.Value != null)
agentId = Environment.CurrentAgent.Value.Id;
if(Environment.CurrentApplication.Value != null &&
Environment.CurrentApplication.Value.GetCurrentVersion() != null)
applicationVersionId = Environment.CurrentApplication.Value.GetCurrentVersion().Id;
return new ApplicationLogEntry(DateTime.Now,
agentId,
SystemVars.GetComputerName(),
applicationVersionId,
logText,
type);
}
创建错误日志条目()
public static ApplicationLogEntry CreateErrorLogEntry(Exception exception, string applicationState) {
if(exception == null)
throw new ArgumentNullException("exception");
int agentId = 0;
int applicationVersionId = 0;
if(Environment.CurrentAgent.Value != null)
agentId = Environment.CurrentAgent.Value.Id;
if(Environment.CurrentApplication.Value != null &&
Environment.CurrentApplication.Value.GetCurrentVersion() != null)
applicationVersionId = Environment.CurrentApplication.Value.GetCurrentVersion().Id;
return new ApplicationLogEntry(DateTime.Now,
agentId,
SystemVars.GetComputerName(),
applicationVersionId,
ErrorLogging.CreateExceptionDescription(exception, SystemVars.GetAssemblyFullName(), applicationState, true),
LogTypes.Error);
}
创建报告日志条目
public static ApplicationLogEntry CreateReportLogEntry(XmlDocument report) {
if(report == null)
throw new ArgumentNullException("report");
int agentId = 0;
int applicationVersionId = 0;
if(Environment.CurrentAgent.Value != null)
agentId = Environment.CurrentAgent.Value.Id;
if(Environment.CurrentApplication.Value != null &&
Environment.CurrentApplication.Value.GetCurrentVersion() != null)
applicationVersionId = Environment.CurrentApplication.Value.GetCurrentVersion().Id;
return new ApplicationLogEntry(DateTime.Now,
agentId,
SystemVars.GetComputerName(),
applicationVersionId,
report.OuterXml,
LogTypes.Report);
}
方法调用的一个例子
if(SystemVars.IsProductionEnvironment())
ApplicationLog.LogEvent(ApplicationLogEntry.CreateLogEntryForAgent("Application Closed", LogTypes.Notification));
解决方案
推荐阅读
- sql - 需要为 sql server 中的列检查多个条件
- android - 如何在安卓设备上刷入内核镜像?
- java - 我收到错误。(空对象引用上的'android.app.ActivityThread.getApplicationThread()')
- php - Get only those array values which are repeating N number of times in PHP
- php - Prevent Submit Button Jquery On unique username
- swift - 我想在单个文本字段中检查手机号码和电子邮件 ID 的验证。我应该如何验证这一点?
- javascript - how to set a condition in an array using jquery?
- swift - How to fix "Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value" while using tableview.reloaddata
- reactjs - 反应 BootstrapTable 的分页改变 sizePerPage 的问题
- hyperledger-fabric - 处理超级账本结构中的多重背书