在查了一个下午的资料后,我很想把题目改成Asp.net core之坑1,后面应该还有坑2,坑3...
因为我是安装最新出来的VS2022,.net core 6.0. 和网上说的不一样,连Startup默认也没有,启动的program.cs里也不一样,干脆不管那一套了,直接用自己的老方法:
1.建立一个utils类,里面用静态方法:
public class Utils
{
public static ILog Logger;
private static Object _lockObj = new Object();
static Utils()
{
InitLog(@"xxxxxxxx\AspNETCore_MVC\app.config");
}
#region 公共方法
public static void InitWebLog(string configFile)
{
if (File.Exists(configFile))
{
XmlConfigurator.Configure(new FileInfo(configFile));
Logger = LogManager.GetLogger("root");
Logger.Info("Application started...");
}
}
public static void InitLog(string execFileName)
{
string configFile = execFileName ;
if(File.Exists(configFile))
{
XmlConfigurator.Configure(new FileInfo(configFile));
Logger = LogManager.GetLogger("root");
Logger.Info("Application started...");
}
}
}
再生成一个web.config文件(默认是没有的),在里面按老方法加上log4.net的配置节。
在controller里调用这个Utils的方法即可:
public class StudentController : Controller
{
public IActionResult Index()
{
Utils.Logger.Info("Student controller started..");
.......
}
}
当然还要安装Log4net,我是通过Nuget安装的,Log4net 2.2。
个人感觉不知为什么asp.net core6.0把启动的方法,参数都改了?这样改来改去有什么意义?