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

时间:2018-10-27 04:53:49

标签: unity3d log4net log4net-configuration

我已将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");
        }
    }

1 个答案:

答案 0 :(得分:2)

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

替换

File = @"TestLog/log.txt",

使用

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