如何在本地txt文件中写入日志数据?

时间:2013-12-19 09:11:19

标签: file file-io air

我有一个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。

但是如何在该目录中创建一个文件(在应用程序安装时),然后在其中附加日志?

3 个答案:

答案 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