unity3d - 统一应用程序在另一个系统中安装和运行时未创建 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");
}
}
解决方案
问题很可能是由于您保存文件的位置。该代码将在编辑器中工作,但在构建中失败。Unity 希望您从Application.persistentDataPath
. 这是您可以在 Unity 中跨每个平台读取和写入的唯一路径。
代替
File = @"TestLog/log.txt",
和
File = Application.persistentDataPath + "/TestLog/log.txt";
推荐阅读
- google-cloud-storage - Google Cloud CDN 忽略超过 3600 的 max-age
- android - WebView 不显示结果
- django - Django 模型 - 接口设计以避免在 父类中定义的 CHILD 类调用方法中传递对象
- excel - 当数据存在于另一列中时循环一个列中的公式
- reactjs - React - componentWillReceiveProps 不调用
- c# - 我可以使用 Matlab Coder 为 C# 项目生成 .Net dll 吗?
- java - 将 JAVA 日期更改为 (dd-MMM-yy) 的 ORACLE 日期格式
- jquery - ASP.NET - 在离开页面或切换选项卡之前警告用户未保存的更改
- google-search-appliance - 查找现有 Google Search Appliance 设备的 IP 地址
- python - Keras CNN - 欠拟合或过拟合的模型