Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于变量的Nlog保存日志文件_C#_Nlog - Fatal编程技术网

C# 基于变量的Nlog保存日志文件

C# 基于变量的Nlog保存日志文件,c#,nlog,C#,Nlog,我已经动态创建了游戏实例,每个实例在初始化时都会创建一个GUID,我希望每个实例都能登录到自己的日志文件中。但是现在它只记录到最新初始化的实例 游戏实例: public class GameInstance { private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); public void Initialize() { var Guid = Guid.NewG

我已经动态创建了游戏实例,每个实例在初始化时都会创建一个GUID,我希望每个实例都能登录到自己的日志文件中。但是现在它只记录到最新初始化的实例

游戏实例:

public class GameInstance
{
    private static readonly Logger Logger = LogManager.GetCurrentClassLogger();

    public void Initialize()
    {
        var Guid = Guid.NewGuid();
        Logger.Factory.Configuration.Variables["GameGuid"] = Guid.ToString();
        Logger.Info("Game starting, GUID: " + Guid + ", with " + AllUsers.Count + " players.");    
    }

    public void HandleUserInput()
    {
        Logger.Info("Test Test");
    }
}
我的Nlog配置:


您应该使用LogEventInfo实例并设置其属性值,而不是设置logger factory配置变量

var logEventInfo = new LogEventInfo(logLevel, loggerName, message);
logEventInfo.Properties["GameGuid"] = Guid.NewGuid().ToString();

logger.Log(logEventInfo);
使用
${event properties:item=GameGuid}