所以我开始它的生命,因为这一个自定义跟踪监听器:加载跟踪器属性
http://www.codeproject.com/Articles/30956/A-Rolling-XmlWriterTraceListener
我已经修改了这工作更喜欢log4net的RollingFileAppender进行(见:http://logging.apache.org/log4net/release/sdk/log4net.Appender.RollingFileAppender.html)
当我运行代码时,我发现它没有在配置文件中设置自定义属性的属性/字段值。
在运行时分析对象显示Attributes属性(this.Attributes)不包含任何内容。
任何想法如何解决这个问题?
我应该手动填充这些东西吗?
确定这里是一个代码示例:
[HostProtection(Synchronization = true)]
public class RollingXmlWriterTraceListener : XmlWriterTraceListener
{
public RollingXmlWriterTraceListener(string filename)
: base(filename)
{
_basicTraceFileName = filename;
LoadAttributes();
}
在LoadAttributes方法,然后我做...
if (Attributes.ContainsKey("maxTraceFileCount"))
{
string attributeValue = Attributes["maxTraceFileCount"];
的问题是 “属性” 决不会包含什么。 该类使用其中确实包含了属性的配置信息,从框架代码实例化......
<sharedListeners>
<add type="emedia.Common.Wcf.RollingXmlWriterTraceListener, emedia.Common.Wcf"
name="System.ServiceModel.XmlTrace.Listener"
traceOutputOptions="None"
initializeData="C:\Logs\MyTraceFileName.svclog"
MaxTraceFileSize="1048576"
MaxTraceFileCount="10"
/>
</sharedListeners>
编辑2:
的XmlWriterTraceListener类是.NET的一部分,通过使在继承我的基类Attributes属性。
在配置我应该可以再指定任何属性的代码做这样的事情......
var attValue = Attributes["something"];
...但由于某些原因,这又回到空(该属性是不是在采集)。
没有无法使用的代码以及它想要使用的配置;真的很难说。请提供尽可能最小的示例(不要复制并粘贴您的当前代码)以重现问题。 – 2012-07-19 14:30:59