在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}" />
这种设施是否可用而无需编码和重新编译?
答案 0 :(得分:1)
根据source code for EF6,使用简单记录器是不可能的。你需要实现自己的拦截器才能做到这一点。
// Code from EF6 source:
public DatabaseLogger(string path, bool append)
{
Check.NotEmpty(path, "path");
_writer = new StreamWriter(path, append) { AutoFlush = true };
}