但问题是,我不能在le.Message属性中放置超过50个字符.在我的情况下,堆栈跟踪超过500个字符长,我想在发生错误时登录到平面文件.
我们可以在LogEntry对象的Message Property中放置的charactors数量有限制吗?或者有没有其他方法将堆栈跟踪记录到logger平面文件中?
这是简单的代码.
LogEntry le = new LogEntry();le.CategorIEs.Add("ErrorsToEventLog");le.CategorIEs.Add("ErrorsTologfile");le.Title = "Error message";le.TimeStamp = System.DateTime.Now;le.Severity = System.Diagnostics.TraceEventType.Error;le.Message = "<text of error's stack trace>";Logger.write(le);
配置设置
<configSections> <section name="loggingConfiguration"type="Microsoft.Practices.Enterpriselibrary.Logging.Configuration.LoggingSettings,Microsoft.Practices.Enterpriselibrary.Logging,Version=4.1.0.0,Culture=neutral,PublicKeyToken=null" /><section name="dataConfiguration"type="Microsoft.Practices.Enterpriselibrary.Data.Configuration.DatabaseSettings,Microsoft.Practices.Enterpriselibrary.Data,PublicKeyToken=null" /></configSections>
这是我使用的格式化程序,
<formatters><add template="Timestamp: {timestamp} Message: {message}" type="Microsoft.Practices.Enterpriselibrary.Logging.Formatters.textformatter,PublicKeyToken=null" name="Text Formatter" /></formatters>
这是听众,
<add filename="Logs/ErrorLog_{Date}.log" ListenerDataType="Microsoft.Practices.Enterpriselibrary.Logging.Configuration.CustomTraceListenerData,PublicKeyToken=null" traceOutputoptions="None"type="Enterpriselibrary.Logging.Extensions.RollingFlatfileTraceListener,Enterpriselibrary.Logging.Extensions,Version=1.0.0.0,PublicKeyToken=null" name="Custom TraceListener" initializeData="" />
分类
<categorySources><add switchValue="All" name="ErrorsToEventLog"><Listeners><add name="Formatted EventLog TraceListener" /></Listeners></add><add switchValue="All" name="ErrorsTologfile"><Listeners> <add name="Custom TraceListener" /></Listeners></add></categorySources>解决方法 据我所知,日志消息没有这样的限制.如何将堆栈跟踪设置为消息? 总结
以上是内存溢出为你收集整理的c# – 使用记录器记录堆栈跟踪全部内容,希望文章能够帮你解决c# – 使用记录器记录堆栈跟踪所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)