我有一个AIR-app,我希望它将日志写入其应用程序目录中的txt文件。
我有这堂课:
public class Logger
{
public static function log(message:String):void
{
var logFile:File = File.applicationDirectory;
logFile = logFile.resolvePath("log/Logs.txt");
var fileStream:FileStream = new FileStream();
fileStream.open(logFile, FileMode.APPEND);
fileStream.writeUTFBytes("\n" + message);
fileStream.close();
}
}
}
安装完成后,我的应用程序具有此文件结构
日志
- Logs.txt
META-INF
XML
airapp.exe
airapp.swf
的mimetype
所以我使用的路径是正确的。 但文件没有写入! 你可以帮帮我吗? 感谢
更新。好的,我愚蠢。我应该首先正确阅读文档。 您无法编辑应用程序目录中的数据。
所以我应该使用applicationStorageDirectory。
但是如何在该目录中创建一个文件(在应用程序安装时),然后在其中附加日志?
答案 0 :(得分:1)
请尝试以下方法....
function saveLog(logStr:String):void
{
var myFile:File = File.applicationStorageDirectory.resolvePath("my_logs.txt");
var fs:FileStream = new FileStream();
if(!myFile.exists){
fs.open(myFile, FileMode.WRITE);
}
else{
fs.open(myFile, FileMode.APPEND);
}
fs.writeUTFBytes("\n" + logStr);
fs.close();
}
在创建完成时调用此函数,然后从添加日志的位置调用。
答案 1 :(得分:1)
如果你想要真正的日志,你应该使用第三方安装程序而不是adobe air的本机运行时间。尝试Wixedit(opensource)或安装意识。
您必须将项目导出为Flash Builder中提供的捕获运行时格式。
试试此链接
http://www.adobe.com/devnet/air/articles/customize-setup-for-AIR-app-with-captive-runtime.html
答案 2 :(得分:0)
尝试类似:
function saveLog(content:String):void
{
var data:ByteArray = new ByteArray();
data.writeMultiByte(content, "utf-8");
file.save(data, "Logs.txt");
}
saveLog('testing :)');
要打开并修改日志文件,请尝试关注this tutorial