如何解决按日期降序显示NLog
我正在将NLog与VB.Net项目一起使用:
Private m_logger As NLog.Logger = LogManager.GetCurrentClassLogger()
问题在日志中的填充如下:
Catch ex As Exception
Console.WriteLine("Error: {0}",ex.Message.ToString())
m_logger.Error(ex,"ExtractCalendarInformation")
End Try
现在,此VB也是一个控制台应用程序,已与另一个用Visual C ++编写的应用程序一起使用。如果父应用检测到问题,则显示日志文件:
void CMeetingScheduleAssistantApp::ShowLogFile(CString strLogFile)
{
if (PathFileExists(strLogFile))
{
CLogDlg dlgLog;
CTextFileRead fileLog(strLogFile);
CString strText = _T("");
fileLog.ReadLine(strText);
while (!fileLog.Eof())
{
strText.Trim();
if (strText.IsEmpty())
continue;
dlgLog.AddLogEntry(strText,true);
fileLog.ReadLine(strText);
}
dlgLog.SetErrorMode(true);
dlgLog.DoModal();
}
}
问题在于日志文件的日期为高,有时用户向我发送了屏幕截图,但没有滚动。
是否仍然可以按照fdate降序从Nlog显示此错误日志?而且我认为仅反向读取文件是不可行的。
我同时包含VB和C ++标记,因为我可能必须在任一工具中进行更改。
我看到了这个问题Write records in descending order in NLog。关键是我的C#工具使用SimpleLogger
,并在文件夹中创建日志文件夹,并且日志按日期命名,并且该日志中的所有项目都是降序的。但是我不能将SimpleLogger
与我不认为的VB.Net一起使用。
解决方法
一种选择是将文件加载到vector<CString>
中,然后仅使用rbegin()
进行反向迭代并将文件内容插入dlgLog。
另一种选择是研究在加载文件后如何更新CTextFileRead
中的滚动条,以便将滚动按钮向下移动到底部。
更新
我实际上是在使用CEdit
控件来显示日志内容。所以最后我使用以下代码自动滚动到底部:
m_editLogData.LineScroll(m_editLogData.GetLineCount());
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。