银河麒麟服务器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初始化的时候指定要写入的日志目录位置:

cs 复制代码
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文件夹:

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

相关推荐
csdn_aspnet7 天前
使用 .Net Core 6.0 NPOI 读取excel xlsx 单元格内的图片
excel·.net6.0
csdn_aspnet7 天前
使用 .NET Core 6.0 Web API 上传单个和多个文件
.netcore·.net6.0
csdn_aspnet8 天前
在 ASP.NET Core 6.0 Web API 中将 Excel 文件数据上传并保存到数据库中
数据库·excel·webapi·.net6.0
csdn_aspnet9 天前
使用 Serilog 在 .NET Core 6.0 中日志记录
.netcore·.net6.0
csdn_aspnet11 天前
ASP.NET Core 6.0 如何处理丢失的 Startup.cs 文件
.net6.0
csdn_aspnet15 天前
.Net 6.0 .Net7.0 .Net8.0 .Net9.0 使用 Serilog 按日志等级写入日志及 appsetting.json 配置方式实现
.net6.0·serilog·.net9.0
csdn_aspnet1 个月前
使用 .NET 6 或 .NET 8 上传大文件
.net6.0·.net8.0
csdn_aspnet2 个月前
.NET 6.0 中接入 Log4net 和 NLog
log4net·nlog·.net6.0
csdn_aspnet2 个月前
在.NET 6中使用Serilog收集日志
webapi·.net6.0