DefaultPublisher.as

Go to the documentation of this file.
00001 
00007 import gugga.logging.formatters.DefaultFormatter;
00008 import gugga.logging.IFilter;
00009 import gugga.logging.IFormatter;
00010 import gugga.logging.IPublisher;
00011 import gugga.logging.Level;
00012 import gugga.logging.LogRecord;
00013 
00014 class gugga.logging.publishers.DefaultPublisher implements IPublisher
00015 {
00016         private var filter:IFilter;
00017         private var formatter:IFormatter;
00018         private var level:Level;
00019 
00023         public function DefaultPublisher() 
00024         {
00025                 this.setFormatter(new DefaultFormatter());
00026         }
00027 
00031         public function publish(logRecord:LogRecord):Void
00032         {
00033                 if (this.isLoggable(logRecord)) {
00034                         trace(this.getFormatter().format(logRecord));
00035                 }
00036         }
00037         
00041         public function setFilter(filter:IFilter):Void
00042         {
00043                 this.filter = filter;
00044         }
00045         
00049         public function getFilter():IFilter
00050         {
00051                 return this.filter;
00052         }
00053 
00057         public function setFormatter(formatter:IFormatter):Void
00058         {
00059                 this.formatter = formatter;
00060         }
00061 
00065         public function getFormatter():IFormatter
00066         {
00067                 return this.formatter;
00068         }
00069         
00073         public function setLevel(level:Level):Void
00074         {
00075                 this.level = level;
00076         }
00077         
00081         public function getLevel():Level
00082         {
00083                 return this.level;
00084         }
00085         
00089         public function isLoggable(logRecord:LogRecord):Boolean
00090         {
00091                 if (this.getLevel() > logRecord.getLevel()) {
00092                         return false;
00093                 }
00094                 
00095                 if (this.getFilter() == undefined || this.getFilter() == null) {
00096                         return true;
00097                 }
00098                 
00099                 if (this.getFilter().isLoggable(logRecord)) {
00100                         return true;
00101                 }
00102                 
00103                 return false;
00104         }       
00105 }

Generated on Fri May 11 17:12:42 2007 for GuggaFramework by  doxygen 1.5.2