flex 自定义log FileTarget

package com.adobe.air.logging { 
import mx.logging.AbstractTarget;
import flash.filesystem.File; 
import flash.filesystem.FileStream;
import flash.filesystem.FileMode; 
import mx.logging.LogEvent; 
import flash.system.System; 
import flash.system.Capabilities; 
import mx.logging.targets.LineFormattedTarget;
import mx.core.mx_internal;  
use namespace mx_internal;  
/** 
* An Adobe AIR only class that provides a log target for the Flex logging 
* framework, that logs files to a file on the user's system. 
*  
* This class will only work when running within Adobe AIR> 
*/ 
public class FileTarget extends LineFormattedTarget { 
	private const DEFAULT_LOG_PATH:String = "app-storage:/application.log";  
	private var log:File;  
	public function FileTarget(logFile:File = null) { 
		if(logFile != null) { 
			log = logFile; 
		} else { 
			log = new File(DEFAULT_LOG_PATH); 
		} 
	} 
	public function get logURI():String { 
		return log.url; 
	} 
	mx_internal override function internalLog(message:String):void { 
		write(message); 
	}   
	private function write(msg:String):void {  
		var fs:FileStream = new FileStream(); 
		fs.open(log, FileMode.APPEND); 
		fs.writeUTFBytes(msg + "\n"); fs.close(); 
	}   
	public function clear():void { 
		var fs:FileStream = new FileStream(); 
		fs.open(log, FileMode.WRITE); 
		fs.writeUTFBytes(""); 
		fs.close();  
	}  
}//end class
}//end package 


转: http://code.google.com/p/as3corelib/source/browse/trunk/src/com/adobe/air/logging/FileTarget.as?spec=svn66&r=66

http://gain-loss.org/?p=119

你可能感兴趣的:(Flex,Google,Flash,Adobe,AIR)