Flex 中日志写入问题:无法创建日志文件,代码修改方案
您需要在本地创建一个文件夹,并访问该文件夹才能将日志写入其中。请尝试以下更改:
public var logFileName:String = '';
public var logFilePath:String = '';
public var logStr:String = '';
public var fileRef:FileReference;
public function WriteTextLog(organBM:String, action:String, strMessage:String):void {
// 构造日志文件名,包含当前日期
var today:String = mx.controls.DateField.dateToString(new Date(), 'YYYY-MM-DD');
now:String = mx.controls.DateField.dateToString(new Date(), 'YYYY-MM-DD HH:mm:ss');
logFileName = 'log_' + today + '.txt';
// 构造日志文件路径
logFilePath = File.applicationStorageDirectory.resolvePath(organBM + '/' + logFileName).nativePath;
// 构造日志内容
fileRef = new FileReference();
logStr = 'Time: ' + now + '\r\n';
if (action != '') {
logStr += 'Action: ' + action + '\r\n';
}
if (strMessage != '') {
logStr += 'Message: ' + strMessage + '\r\n';
}
logStr += '-----------------------------------------------------------\r\n\r\n';
// 创建或打开日志文件
var folder:File = File.applicationStorageDirectory.resolvePath(organBM);
if (!folder.exists) {
folder.createDirectory();
}
fileRef.addEventListener(Event.SELECT, onSelect);
fileRef.addEventListener(Event.COMPLETE, onComplete);
fileRef.addEventListener(flash.events.ErrorEvent.ERROR, onError);
fileRef.browseForSave('Save As');
}
function onSelect(e:Event):void {
fileRef.save(logStr, logFilePath);
}
function onComplete(e:Event):void {
trace('Log saved successfully.');
}
function onError(e:Event):void {
trace('An error occurred.');
}
这里,我们使用了File.applicationStorageDirectory来创建一个文件夹,并将日志文件保存在其中。然后,我们通过fileRef.browseForSave('Save As')来让用户选择保存文件的位置和文件名。最后,我们将日志写入所选的文件中。
原文地址: https://www.cveoy.top/t/topic/oNJe 著作权归作者所有。请勿转载和采集!