如何防止在事件日志中截断服务异常

Sam*_*ppe 5 c# windows windows-services event-log

我们有ac #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>
Run Code Online (Sandbox Code Playgroud)

请注意,堆栈跟踪的末尾被截断为"...".

Yas*_*ser 0

您无法增加事件日志消息的大小,如果您尝试写入更长的消息,您应该会收到异常。

MSDN表示,如果您尝试记录的消息长度超过最大限制,即 31,839 字节(Windows Vista 之前的 Windows 操作系统为 32,766 字节),则会引发ArgumentException 。