银河麒麟服务器v10 sp1 .Net6.0 Serilog 运行时不创建日志文件

上一篇:银河麒麟服务器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文件夹:

 

 

 至此,问题得到解决,希望本文能帮助你。

猜你喜欢

转载自blog.csdn.net/hefeng_aspnet/article/details/132339409
今日推荐