如何防止在事件日志中截断服务异常
本文关键字:服务 异常 日志 何防止 事件 | 更新日期: 2023-09-27 18:01:58
我们有一个c# windows服务失败,导致错误日志消息被写入windows事件日志。错误消息包含异常信息,但它被截断,阻止我们看到关键信息。
我们如何增加写入日志消息的数据,以便我们可以看到异常的完整堆栈跟踪?
这是我们目前在事件查看器中看到的。
<EventData>
<Data>Service cannot be started. System.ArgumentException: Keyword not supported: 'port'.
at System.Data.Common.DbConnectionOptions.ParseInternal(Hashtable parsetable, String connectionString, Boolean buildChain, Hashtable synonyms, Boolean firstKey)
at System.Data.Common.DbConnectionOptions..ctor(String connectionString, Hashtable synonyms, Boolean useOdbcRules)
at System.Data.SqlClient.SqlConnectionString..ctor(String connectionString)
at System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString, DbConnectionOptions previous)
at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey key, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions) at System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey key) at System.Data.SqlClient.SqlConnection.set_ConnectionString(String value)
at System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.<SetConnectionString>b__1a(DbConnection t...</Data>
</EventData>
</Event>
注意,堆栈跟踪的末尾用"…"截断。
你不能增加事件日志消息的大小,如果你试图写更长的消息,你应该得到一个异常。
MSDN表示,如果您尝试记录消息长度超过最大限制,即31,839字节(Windows操作系统在Windows Vista之前为32,766字节),则抛出ArgumentException。