安装统一应用程序时未创建 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";
我已将 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";