我正在使用 Enterprise Library 5 进行日志记录,有没有办法更改text formatter template
以创建HTML
日志文件?
答案 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=" <html>
 <body>

 <table border="1" style="border: solid 1px #000000; border-collapse:collapse;font-family:tahoma;color:black ;font-size:12px;">

 <tr><td><b>Message</b></td><td><b>{message}</b></td></tr>

 <tr><td>Local TimeStamp</td><td>{timestamp(local)}</td></tr>

 <tr><td>Title</td><td>{title}</td></tr>

 <tr><td>Severity</td><td>{severity}</td></tr>

 <tr><td>Category</td><td>{category}</td></tr>

 <tr><td>Local Machine</td><td>{localMachine}</td></tr>

 <tr><td>AppDomain</td><td>{appDomain}</td></tr>

 <tr><td>Extended Properties</td><td>
 <table border="1" style="border: solid 1px #000000; border-collapse:collapse;">
 {dictionary(<tr><td>{key}</td><td>{value}</td></tr>)}

 </table></td></tr>
 </table>
 </body>
 </html>

"
name="HTMLFormatter" />
答案 1 :(得分:0)
@ Masoud的方法很简单,可以在大多数情况下使用(但可以记录无效的HTML)。
另一种方法是使用仅具有Message属性集的模板,并编写生成有效HTML的帮助器方法(所有字段都正确转义等)。
更进一步,可以创建一个自定义格式化程序来输出所需的HTML。