环境:
win10,SQL Server 2008 R2
安装
使用NuGet
安装时发现报错并无法安装:
现有 packages.config 文件中检测到一个或多个未解析包依赖项约束。必须解析所有依赖项约束以添加或更新包。如果正在更新这些包,则可忽略此消息,如果没有更新这些包,错误可能阻止当前包操作: 'EntityFramework.zh-Hans 6.2.0 约束: EntityFramework (= 6.2.0)'
无法解析依赖项。“EntityFramework 6.4.4”与 'EntityFramework.zh-Hans 6.2.0 约束: EntityFramework (= 6.2.0)' 不兼容。
查询后得知:EntityFramework.zh-Hans 是 Entity Framework 的中文本地化包,用于将 Entity Framework 的个包通常用于将 Entity Framework 在用户界面中显示的文本本地化成中文。
考虑到我不需要这个功能,就直接卸载了这个包。报错解除,正常安装。
配置
- 打开项目根目录下的Web.config文件,在
<configSections>
下增加一条语句:
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
如果不加这句会报错:
配置错误 无法读取配置节“log4net”,因为它缺少节声明
然后在</configuration>
前加入下面这段:
<log4net><appender name="FileAppender" type="log4net.Appender.FileAppender"><file value="logFile.log" /><appendToFile value="true" /><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /></layout></appender><root><level value="DEBUG" /><appender-ref ref="FileAppender" /></root></log4net>
就是放在这个位置:
2. 打开Global.asax.cs文件,在函数Application_Start
中增加一句:
log4net.Config.XmlConfigurator.Configure();
使用
比如在HomeController里:
public class HomeController : Controller
{// use logprivate static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);public ActionResult Index(){log.Debug("Debug message");log.Info("Info message");log.Warn("Warn message");log.Error("Error message");log.Fatal("Fatal message");return View();}.....
}
此时项目根目录下产生文件logFile.log,内容为:
2024-06-28 16:58:27,429 [9] DEBUG WebApplication1.Controllers.HomeController [(null)] - Debug message
2024-06-28 16:58:27,452 [9] INFO WebApplication1.Controllers.HomeController [(null)] - Info message
2024-06-28 16:58:27,452 [9] WARN WebApplication1.Controllers.HomeController [(null)] - Warn message
2024-06-28 16:58:27,452 [9] ERROR WebApplication1.Controllers.HomeController [(null)] - Error message
2024-06-28 16:58:27,453 [9] FATAL WebApplication1.Controllers.HomeController [(null)] - Fatal message