Serilog破坏了多个日志?

meimeiriver

这对于单词来说太奇怪了。我有2个完全独立的程序,它们都使用Serilog,例如:

            Log.Logger = new LoggerConfiguration ()
            .MinimumLevel.Debug ()
            .Filter.ByExcluding (e => e.MessageTemplate.Text.Contains ("Could not find file"))
            .WriteTo.File ("testA-.log", rollingInterval: RollingInterval.Day, retainedFileCountLimit: 1, outputTemplate: template)
            .CreateLogger ();

第二个程序记录到“ testB-.log”。现在,奇怪的是,当程序B登录到“ testB-.log”时,它结束于“ testA-.log”中(Sic!)。没事 这就像Windows所说的“ Ony 1程序可以同时使用此dll”。大声笑。这里发生了什么奇怪的合并?

注意:这些程序通过SHVDN运行:https : //github.com/crosire/scripthookvdotnet/releases

C.奥古斯托·普罗埃特

似乎您用ScriptHookVDotNET执行的两个应用程序/脚本共享了存储记录器实例(Log.Logger的相同静态上下文,因此运行的最后一个脚本会更改实例并影响第一个脚本。

ScriptHookVDotNET似乎没有提供您在常规.NET应用程序中所期望的隔离,因此,我建议在其Gitter聊天中询问这是否是设计使然,以及创建隔离的静态上下文的推荐“ ScriptHookVDotNET方式”是什么

一种可能的解决方法是将记录器实例存储为属于特定脚本的实例变量,该变量可以与脚本的实例方法共享。例如

public class Main : Script
{
    private ILogger _log = Logger.None;

    public Main()
    {
        _log = new LoggerConfiguration()
            .MinimumLevel.Debug()
            .Filter.ByExcluding(e => e.MessageTemplate.Text.Contains("Could not find file"))
            .WriteTo.File("testA-.log", rollingInterval: RollingInterval.Day, retainedFileCountLimit: 1)
            .CreateLogger();

        KeyDown += OnKeyDown;
        Interval = 1000;
    }

    private void OnKeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.T)
        {
            _log.Information("Create AI Script and store as AIone");
            // ...
        }

        // ...
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

多个视图模型破坏了基因敲除

来自分类Dev

Serilog-多个日志文件

来自分类Dev

从 Java 使用 AWS Lambda 进行日志记录似乎被破坏了

来自分类Dev

多个Linux发行版破坏了BIOS风扇控制?

来自分类Dev

Rails通过复选框破坏了多个记录

来自分类Dev

PageTabViewStyle破坏了NavigationView

来自分类Dev

复合控件,页面上有多个实例,设置了验证组,但内部文本破坏了验证

来自分类Dev

复合控件,页面上有多个实例,设置了验证组,但内部文本破坏了验证

来自分类Dev

嵌套的SplitContainers破坏了SplitterWidth

来自分类Dev

我破坏了封装吗?

来自分类Dev

.htaccess破坏了我的网站

来自分类Dev

InstallShield破坏了TFS构建

来自分类Dev

wget破坏了内容的配置

来自分类Dev

PHP输出破坏了Javascript

来自分类Dev

我已经破坏了Ubuntu!

来自分类Dev

添加ManytoManyField破坏了Django

来自分类Dev

导航被display:inline破坏了

来自分类Dev

Tkinter破坏了Toplevel的根源

来自分类Dev

PHP破坏了我的代码

来自分类Dev

icacls破坏了胜利10

来自分类Dev

Firebase模块破坏了Aurelia

来自分类Dev

扩展的 JPanel 破坏了 GridLayout

来自分类Dev

Bootstrap 4.3.1 破坏了 PopConfirm

来自分类Dev

使用多个环境配置文件时,Serilog创建多个MSSqlServer日志

来自分类Dev

从localStorage加载HTML破坏了按钮的功能

来自分类Dev

模型上的SoftDeletes破坏了动态特性

来自分类Dev

集合视图间距破坏了用户界面

来自分类Dev

安装ubuntu破坏了我的Windows安装

来自分类Dev

内联C汇编破坏了自己的变量