using (var connection = new SQLiteConnection(connectionString))
{
connection.Open();
// 创建 SQL 命令
string sql = "SELECT Message FROM Log where Level='ERROR'";
using (var command = new SQLiteCommand(sql, connection))
{
// 执行命令并读取数据
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
string msg = reader.GetString(0);
Console.WriteLine(msg);
}
}
}
}
复制代码
8 实时显示日志
现在所有日志都写到数据库里了,那要是还想实时显示到界面上,当然也有很多方式实现,不过我这里建议实时显示可以利用log4net的自有功能。
好比我想利用winform中的listbox来实时显示日志,可以建立一个Appender(附加),继承于log4net的AppenderSkeleton,这是一个抽象类,有一个抽象方法。
具体的,可以参考以下步伐,这里会显示所有的日志,假如需要过滤的话,可以在这个基础上改。另外,一定一定一定要给this.Layout赋值,这是日志在界面上的显示方式,假如没有写的话,就会劳绩一个报错:“A layout must be set”,去网上搜这条内容,不一定能找到办理方案。
public class ListBoxAppender : AppenderSkeleton
{
private ListBox _ListBox;
public ListBoxAppender(ListBox box)
{
_ListBox = box;
this.Layout = new PatternLayout("%date [%thread] %-5level %logger - %message%newline");