小编Mon*_*ydt的帖子

Serilog - 日志文件的路径

我正在尝试开始使用 serilog。普通的 RollingFile 不符合我的需要(我需要像 logs\20160701-00002.txt 这样的计数),所以我想使用 RollingFileAlternate 作为接收器。

使用 RollingFile 时,我添加了

  loggerInstance = new LoggerConfiguration()
                    .ReadFrom.AppSettings()
Run Code Online (Sandbox Code Playgroud)

并且能够使用以下命令从 App.config 文件中获取路径:

  <add key="serilog:minimum-level" value="Debug" />
  <add key="serilog:using:RollingFile" value="Serilog.Sinks.RollingFile" />
  <add key="serilog:write-to:RollingFile.pathFormat" value="..\Log\MyLOG.LOG" />
Run Code Online (Sandbox Code Playgroud)

现在我切换到 RollingFileAlternate :

        <add key="serilog:minimum-level" value="Debug" />
        <add key="serilog:using:RollingFileAlternate" value="Serilog.Sinks.RollingFileAlternate" />
        <add key="serilog:write-to:RollingFileAlternate.logsDirectory" value="..\Log\test.log" />
        <add key="serilog:write-to:RollingFileALternate.logsFolder" value="..\Log" />
Run Code Online (Sandbox Code Playgroud)

我尝试使用 logsDirectory 和 logsFolder ,因为它们都在https://github.com/BedeGaming/sinks-rollingfile的示例中进行了描述, 但我的程序不会创建文件。

如果我添加到 Loggerconfiguration:

        loggerInstance = new LoggerConfiguration()
            .ReadFrom.AppSettings()
            .WriteTo.RollingFileAlternate("..\\log")
Run Code Online (Sandbox Code Playgroud)

将使用文件夹名称,并将日志文件放在此文件夹中。

有人可以帮助我并告诉我我错过了什么吗?

c# logging serilog

5
推荐指数
1
解决办法
2万
查看次数

将字符串"2017-01-01T12:00:33:123456Z + 02"转换为DateTime

我正在尝试将此字符串从客户转换为日期时间,以将其存储在我的数据库中.

我尝试了几个approches,但似乎没有任何工作.我需要UTC时间的偏移,所以我想我需要用zz做点什么.

这是有效的:

string   test = "2008-06-11T16:11:20.0904778Z";
DateTime publishingTimeStamp = DateTime.ParseExact(test, "o", CultureInfo.InvariantCulture,
             DateTimeStyles.None);
Run Code Online (Sandbox Code Playgroud)

但客户的字符串略有不同,所以我尝试了这个:

string   test = "2017-01-01T12:00:33:123456Z+02"; 
DateTime publishingTimeStamp = DateTime.ParseExact(test, "yyyy-MM-dd'T'HH:mm:ss:ffffffzz", System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.None);
Run Code Online (Sandbox Code Playgroud)

不幸的是它不起作用.我如何转换确切的字符串"2016-01-01T10:00:55:123456Z + 02"?它甚至是可能的,因为它在ffffff前面使用":"

谢谢

c# datetime

2
推荐指数
1
解决办法
865
查看次数

标签 统计

c# ×2

datetime ×1

logging ×1

serilog ×1