Packagecom.theriabook.util.logging
Classpublic class LoggingTarget
Implementsmx.core.IMXMLObject

This class provides the functionality required by the logging framework for a target implementation. It handles the validation of filter expressions and provides a default level property. It can be used for redirecting log messages to various log outputs.

MXML Syntaxexpanded Hide MXML Syntax
  <LoggingTarget
    Properties
    storage="DEFAULT_STORAGE"  
    id="No default"
    storeDefaultLevel="true|false"
    defaultLoggerLevel="LogEventLevel.ALL"
    adjustmentManager="null"
    logOutput="null"
  />
  

Default MXML PropertylogOutput


Example
The following code demonstrates typical usage of LoggingTarget in application.
  <?xml version="1.0" encoding="utf-8"?>
  <!-- Example to demonstrate using LoggingTarget -->
  <mx:Application 
   xmlns:logging="com.theriabook.util.logging.
   xmlns:mx="http://www.adobe.com/2006/mxml"
   creationComplete="doInit (event)"
   verticalAlign="middle"
   horizontalAlign="center"
   layout="horizontal">  
   <mx:Script>
    <![CDATA[
     import mx.logging.ILogger;
     import mx.logging.Log;
     import mx.logging.LogEventLevel;
     
     // Simple app loggers list
     private var aLogger:ILogger = 
         Log.getLogger ("LoggingTargetExample");
     private var secondLogger:ILogger;
     private var thirdLogger:ILogger;
     private var fourthLogger:ILogger;
     private var fiveLogger:ILogger;
     
     // Initing loggers and starting logging messages.
     private function doInit (event:Event):void
     {
      secondLogger = Log.getLogger ("com.theriabook");
      thirdLogger = Log.getLogger ("com.theriabook.First");
      fourthLogger = Log.getLogger ("com.theriabook.Second");
      fiveLogger = Log.getLogger ("com.some.domain.Class");
      aLogger.info ("Application started!");
      secondLogger.info ("Application started!");
      thirdLogger.info ("Application started!");
      fourthLogger.info ("Application started!");
      fiveLogger.info ("Application started!");
     }
     
     // INFO level logging.
     private function info (message:String):void
     {
      aLogger.info (message);
      secondLogger.info (message);
      thirdLogger.info (message);
      fourthLogger.info (message);
      fiveLogger.info (message);
     }
     
     // DEBUG level logging.
     private function debug (message:String):void
     {
      aLogger.debug (message);
      secondLogger.debug (message);
      thirdLogger.debug (message);
      fourthLogger.debug (message);
      fiveLogger.debug (message);
     }
     
     // WARNING level logging.
     private function warn (message:String):void
     {
      aLogger.warn (message);
      secondLogger.warn (message);
      thirdLogger.warn (message);
      fourthLogger.warn (message);
      fiveLogger.warn (message);
     }
     
     // ERROR level logging.
     private function error (message:String):void
     {
      aLogger.error (message);
      secondLogger.error (message);
      thirdLogger.error (message);
      fourthLogger.error (message);
      fiveLogger.error (message);
     }
     
     // FATAL level logging.
     private function fatal (message:String):void
     {
      aLogger.fatal (message);
      secondLogger.fatal (message);
      thirdLogger.fatal (message);
      fourthLogger.fatal (message);
      fiveLogger.fatal (message);
     }
    ]]>
   </mx:Script>
   
   <!-- Setting filtered logger target in application with INFO default level -->
   <logging:LoggingTarget
    defaultLoggerLevel="{LogEventLevel.INFO}">
    <!-- Setting default output to XPanel -->
    <logging:XPanelLogOutput 
     fieldSeparator=" -> " />
    <!-- Setting special popup window for filtering -->
    <logging:adjustmentManager>
     <logging:PopupLogAdjusmentManager
      keyCode="{Keyboard.BACKSPACE}"
      shiftKey="true"
      ctrlKey="true">
      <mx:Array>
       <!-- List of available outputs (with their own settings) -->
       <logging:XPanelOutputDescription />
       <logging:TraceOutputDescription
        fieldSeparator=" -> "
        includeCategory="true"
        includeDate="true"
        includeLevel="true"
        includeTime="true" />
       <logging:ServerOutputDescription/>
       <logging:LocalConnectionOutputDescription/>
       <logging:RemoteOutputDescription/>
      </mx:Array>
     </logging:PopupLogAdjusmentManager>
    </logging:adjustmentManager>
   </logging:LoggingTarget>
   
   <!-- Set of buttons for testing purposes -->
   <mx:Button
    label="Info Level"
    click="info ('Info Level Test')" />
   <mx:Button
    label="Debug Level"
    click="debug ('Debug Level Test')" />
   <mx:Button
    label="Warning Level"
    click="warn ('Warning Level Test')" />
   <mx:Button
    label="Error Level"
    click="error ('Error Level Test')" />
   <mx:Button
    label="Fatal Level"
    click="fatal ('Fatal Level Test')" />
  </mx:Application>
  



Public Properties
 PropertyDefined by
  adjustmentManager : ILogAdjusmentManager
A manager (usually GUI component) for log filtering adjustment.
LoggingTarget
  defaultLoggerLevel : uint
Specifies default logger level
LoggingTarget
  id : String
[read-only] Provides access to the id of this target.
LoggingTarget
  logOutput : ILogOutput
Defines current log output
LoggingTarget
  storage : String = "loggerStorage"
File name for local data store.
LoggingTarget
  storeDefaultLevel : Boolean = true
A flag that indicates whether to persist default logger level to local data store or use value from defaultLoggerLevel.
LoggingTarget
Public Methods
 MethodDefined by
  
LoggingTarget
  
resetStorage():void
Clears local storage and rebuilds logger category tree
LoggingTarget
Protected Methods
 MethodDefined by
  
LoggingTarget
Public Constants
 ConstantDefined by
  DEFAULT_STORAGE : String = "loggerStorage"
[static] Default local storage name.
LoggingTarget
  NONE : int = 0xFFFF
[static] Level NONE constant (not presented in mx.logging.LogEventLevel constants).
LoggingTarget
Property detail
adjustmentManagerproperty
public var adjustmentManager:ILogAdjusmentManager

A manager (usually GUI component) for log filtering adjustment. Currently implemented by PopupLogAdjusmentManager

See also

PopupLogAdjusmentManager

Example
Following is the example of PopupLogAdjusmentManager usage:
        <logging:adjustmentManager>
          <logging:PopupLogAdjusmentManager
          keyCode="{Keyboard.BACKSPACE}"
          shiftKey="true"
          ctrlKey="true">
          <mx:Array>
            <logging:XPanelOutputDescription />
           <logging:TraceOutputDescription
             fieldSeparator=" -> "
            includeCategory="true"
            includeDate="true"
            includeLevel="true"
            includeTime="true" />
           <logging:ServerOutputDescription/>
           <logging:LocalConnectionOutputDescription/>
           <logging:RemoteOutputDescription/>
          </mx:Array>
         </logging:PopupLogAdjusmentManager>
        </logging:adjustmentManager>
        

defaultLoggerLevelproperty 
defaultLoggerLevel:uint  [read-write]

Specifies default logger level

The default value is mx.logging.LogEventLevel.INFO.

Implementation
    public function get defaultLoggerLevel():uint
    public function set defaultLoggerLevel(value:uint):void
idproperty 
id:String  [read-only]

Provides access to the id of this target. The id is assigned at runtime by the mxml compiler if used as an mxml tag, or internally if used within a script block

Implementation
    public function get id():String
logOutputproperty 
public var logOutput:ILogOutput

Defines current log output

storageproperty 
public var storage:String = "loggerStorage"

File name for local data store.

The default value is defaultStorage.sol.

storeDefaultLevelproperty 
public var storeDefaultLevel:Boolean = true

A flag that indicates whether to persist default logger level to local data store or use value from defaultLoggerLevel. By default, the name of the local data store is defaultStorage.sol

Constructor detail
LoggingTarget()constructor
public function LoggingTarget()
Method detail
logEvent()method
protected function logEvent(event:FilterLogEvent):voidParameters
event:FilterLogEvent
resetStorage()method 
public function resetStorage():void

Clears local storage and rebuilds logger category tree

Constant detail
DEFAULT_STORAGEconstant
public static const DEFAULT_STORAGE:String = "loggerStorage"

Default local storage name.

NONEconstant 
public static const NONE:int = 0xFFFF

Level NONE constant (not presented in mx.logging.LogEventLevel constants).