我使用Serilog作为.NET的库,它为文件,控制台和其他地方提供诊断日志记录。
我的问题是我在我的代码中说了一些Logging Events但是在查看Windows事件查看器时,在我的日志中分配的事件ID在事件查看器中没有关联。关于如何修改添加事件ID的任何想法?
记录事件代码
public class LoggingEvents
{
//info
public const int GENERATE_INDEXPAGE = 2000;
public const int ADMIN_ACCESS = 2001;
public const int ON_GET_REGISTRATION = 2002;
public const int ON_GET_APP_BY_KEY = 2003;
public const int ON_GET_BY_AIR_ID = 2004;
public const int ON_GET_USERS = 2005;
public const int ON_GET_GROUPS = 2006;
public const int ON_POST_APPLICATION = 2007;
//warning
public const int NO_ADMIN_ACCESS = 3000;
public const int INVALID_AIR_ID = 3001;
//error
public const int ERROR_POST_APPLICATION = 4000;
}
答案 0 :(得分:1)
Serilog Windows Event Logger是开源的。我从来没有做过你所要求的,但我的回答只是基于查看源代码。如果您对如何使用开源库执行某些操作有疑问,那么您只需查看代码即可。
添加事件日志接收器时,您需要做的就是创建IEventIdProvider的实例,然后注册它。
div {
display: inline;
padding-bottom: 5px;
position: relative
}
div:hover {
cursor: pointer;
}
div::after {
content:'';
position: absolute;
height: 1px;
left: 0;
right: 0;
bottom:0;
display: block;
background-color: black;
transition: transform 0.3s ease-in-out;
}
div:hover::after {
transform: translateY(-3px);
}
答案 1 :(得分:0)
补充@mason答案,这是从appsettings.json配置它的方法:
{
"Serilog": {
"WriteTo": [
{
"Name": "EventLog",
"Args": {
"source": "your source name",
"eventIdProvider": "namespace.class, assembly"
}
}
]
}
}
例如
{
"Serilog": {
"WriteTo": [
{
"Name": "EventLog",
"Args": {
"source": "MyApp",
"eventIdProvider": "MyApp.MyEventIdProvider, MyApp"
}
}
]
}
}