上一篇:银河麒麟服务器v10 sp1 .Net Core 上传文件错误_csdn_aspnet的博客-CSDN博客
在代码中常用的日志记录相关重要或错误日志等,如Serilog、Log4net等,本文使用Serilog,在Program.cs的main方法中,代码如下图(本文基于:NetCore3.1项目升级到Net6.0_.net 3.0 .net6 升级_csdn_aspnet的博客-CSDN博客):
以上代码发布在windows的iis上是可以正常生成日志文件目录及日志文件的。
记录日志代码:
但是在银河麒麟V10上发布后,运行目录内一直没有创建logs文件夹,调用接口时,也不会创建日志记录文件。
经过一番搜索后,发现在需要指定日志写入目录,即Serilog初始化的时候指定要写入的日志目录位置:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((hostingContext, config) =>
{
Log.Logger = new LoggerConfiguration()
.WriteTo
.File(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "logs/.log"), rollingInterval: RollingInterval.Day)
.CreateLogger();
})
.ConfigureLogging((hostingContext, logging) =>
{
logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
logging.AddSerilog(dispose: true);
})
.UseStartup<Startup>();
特别注意AppDomain.CurrentDomain.BaseDirectory
,
这将指向您的银河麒麟V10的部署文件夹,我想应该也可以从配置文件中读取你指定的文件夹或目录,修改项目中实际代码如下:
再次测试即可在服务器的部署文件夹内看到logs文件夹:
至此,问题得到解决,希望本文能帮助你。