首页 > 解决方案 > 统一应用程序在另一个系统中安装和运行时未创建 Log4net 日志文件

问题描述

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

标签: unity3dlog4netlog4net-configuration

解决方案


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

代替

File = @"TestLog/log.txt",

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

推荐阅读