Файл журнала Log4net не создается, когда приложение Unity установлено и запущено в другой системе. - PullRequest
0 голосов
/ 27 октября 2018

Я добавил файл журнала log4net в мое приложение Unity. Когда я запускаю свое приложение на своем компьютере, файлы журнала создаются успешно и регистрируют данные, но когда я публикую сборку своего приложения и запускаю ее в другой системе, файлы журнала не создаются. Пожалуйста, предложите любую идею, что мне не хватает при создании в файле журнала. Вот код, используемый для создания файла журнала.

Пример кода:

  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 голосов
/ 27 октября 2018

Весьма вероятно, что проблема связана с тем, где вы сохраняете файл.Код будет работать в редакторе, но не удастся собрать.Unity ожидает от вас сохранения и чтения данных из Application.persistentDataPath.Это единственный путь, который вы можете читать и писать в Unity на любой платформе.

Замените

File = @"TestLog/log.txt",

на

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