设置EF拦截器文件名布局
本文关键字:文件名 布局 EF 设置 | 更新日期: 2023-09-27 18:17:34
在EF 6.1(起)中,我可以像下面这样配置我的app.config文件:
<interceptors>
<interceptor type="System.Data.Entity.Infrastructure.Interception.DatabaseLogger, EntityFramework">
<parameters>
<parameter value="C:'Stuff'LogOutput.txt"/>
<parameter value="true" type="System.Boolean"/>
</parameters>
</interceptor>
</interceptors>
上面的位于我的app.config的EntityFramework部分。
我如何能够设置文件名的布局,以反映操作的日期类似于流行的记录器,如NLog,所以我每天得到新的日志?
<target name="logfile" xsi:type="File" fileName="C:'logs'folder'log_${shortdate}.txt" layout="${longdate} ${level:uppercase=true:padding=-5} [${threadid:padding=3}] ${logger:padding=-55} - ${message}" />
是否不需要一些编码和重新编译就可以使用这种功能?
根据EF6的源代码,使用简单的日志记录器是不可能的。你需要实现你自己的拦截器来做到这一点。
// Code from EF6 source:
public DatabaseLogger(string path, bool append)
{
Check.NotEmpty(path, "path");
_writer = new StreamWriter(path, append) { AutoFlush = true };
}