有没有办法在Enterprise Library中更改文本格式化模板,以创建HTML日志文件?

时间:2013-08-06 03:39:29

标签: html templates logging enterprise-library

我正在使用 Enterprise Library 5 进行日志记录,有没有办法更改text formatter template以创建HTML日志文件?

2 个答案:

答案 0 :(得分:1)

我通过在app.config中添加格式化程序并将其命名为HTMLFormatter来解决了这个问题:

<add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
template="                  &lt;html&gt;&#xA;                  &lt;body&gt;&#xA;&#xA;                  &lt;table border=&quot;1&quot; style=&quot;border: solid 1px #000000; border-collapse:collapse;font-family:tahoma;color:black ;font-size:12px;&quot;&gt;&#xA;&#xA;                  &lt;tr&gt;&lt;td&gt;&lt;b&gt;Message&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;{message}&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&#xA;&#xA;                  &lt;tr&gt;&lt;td&gt;Local TimeStamp&lt;/td&gt;&lt;td&gt;{timestamp(local)}&lt;/td&gt;&lt;/tr&gt;&#xA;&#xA;                  &lt;tr&gt;&lt;td&gt;Title&lt;/td&gt;&lt;td&gt;{title}&lt;/td&gt;&lt;/tr&gt;&#xA;&#xA;                  &lt;tr&gt;&lt;td&gt;Severity&lt;/td&gt;&lt;td&gt;{severity}&lt;/td&gt;&lt;/tr&gt;&#xA;&#xA;                  &lt;tr&gt;&lt;td&gt;Category&lt;/td&gt;&lt;td&gt;{category}&lt;/td&gt;&lt;/tr&gt;&#xA;&#xA;                  &lt;tr&gt;&lt;td&gt;Local Machine&lt;/td&gt;&lt;td&gt;{localMachine}&lt;/td&gt;&lt;/tr&gt;&#xA;&#xA;                  &lt;tr&gt;&lt;td&gt;AppDomain&lt;/td&gt;&lt;td&gt;{appDomain}&lt;/td&gt;&lt;/tr&gt;&#xA;&#xA;                  &lt;tr&gt;&lt;td&gt;Extended Properties&lt;/td&gt;&lt;td&gt;&#xA;                  &lt;table border=&quot;1&quot; style=&quot;border: solid 1px #000000; border-collapse:collapse;&quot;&gt;&#xA;                  {dictionary(&lt;tr&gt;&lt;td&gt;{key}&lt;/td&gt;&lt;td&gt;{value}&lt;/td&gt;&lt;/tr&gt;)}&#xA;&#xA;                  &lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&#xA;                  &lt;/table&gt;&#xA;                  &lt;/body&gt;&#xA;                  &lt;/html&gt;&#xA;&#xA;"
name="HTMLFormatter" />

答案 1 :(得分:0)

@ Masoud的方法很简单,可以在大多数情况下使用(但可以记录无效的HTML)。

另一种方法是使用仅具有Message属性集的模板,并编写生成有效HTML的帮助器方法(所有字段都正确转义等)。

更进一步,可以创建一个自定义格式化程序来输出所需的HTML。