安装统一应用程序时未创建 Log4net 日志文件,并且 运行 在另一个系统中

Log4net log file not created when unity app installed and running in another system

我已将 log4net 日志文件添加到我的统一应用程序中。当我 运行 我的应用程序在我自己的机器上成功创建日志文件并记录数据时,但是当我发布我的应用程序的构建并 运行 它在另一个系统中时,不会创建日志文件。请提出我在日志文件中创建时遗漏的任何想法。这是用于创建日志文件的代码。

示例代码:

  public static void ConfigureAllLogging()
    {
        try
        {
            var patternLayout = new PatternLayout
            {
                ConversionPattern = "%date %-5level %logger - %message%newline"
            };
            patternLayout.ActivateOptions();

            // setup the appender that writes to Log\EventLog.txt
            var fileAppender = new RollingFileAppender
            {
                AppendToFile = true,
                File = @"TestLog/log.txt",
                Layout = patternLayout,
                MaxSizeRollBackups = 1,
                MaximumFileSize = "10MB",
                RollingStyle = RollingFileAppender.RollingMode.Size,
                StaticLogFileName = true,
                LockingModel = new RollingFileAppender.MinimalLock(),


            };


            fileAppender.ActivateOptions();

            var unityLogger = new UnityAppender
            {
                Layout = new PatternLayout()
            };
            unityLogger.ActivateOptions();

            BasicConfigurator.Configure(fileAppender);
        }
        catch(Exception ex)
        {
            LoggingManager.Error(ex, "ConfigureAllLogging", "Log4netLogHelper");
        }
    }

问题很可能是由于您保存文件的位置造成的。该代码将在编辑器中运行,但在构建中失败。 Unity 希望您从 Application.persistentDataPath 保存和读取数据。这是您可以跨所有平台在 Unity 中读取和写入的唯一路径。

替换

File = @"TestLog/log.txt",

File = Application.persistentDataPath + "/TestLog/log.txt";