Package anvil.server

Source Code of anvil.server.LoggingPreferences

/*
* $Id: LoggingPreferences.java,v 1.10 2002/09/16 08:05:06 jkl Exp $
*
* Copyright (c) 2002 Njet Communications Ltd. All Rights Reserved.
*
* Use is subject to license terms, as defined in
* Anvil Sofware License, Version 1.1. See LICENSE
* file, or http://njet.org/license-1.1.txt
*/
package anvil.server;

import anvil.Log;
import anvil.LogLayout;
import anvil.LogDevice;

/**
* class LoggingPreferences
*
* @author: Jani Lehtim�ki
*/
public class LoggingPreferences extends Preferences
{

  public static final String[] PREFERENCES = {
    "format", "string",
    "target", "string",
    "provider", "string",
    "level", "Emergency;Alert;Critical;Error;Warning;Notice;Info;Debug"
  };   
   

  private String _provider = "anvil.server.basic.BasicLogDevice";
  private String _format = "basic";
  private String _target = "stderr";
  private int _level = anvil.Log.ERROR;


  public LoggingPreferences(Zone parent)
  {
    super(parent);
  }


  public void setProvider(String provider)
  {
    if (provider != null) {
      _provider = provider;
    }
  }

 
  public String getProvider()
  {
    return _provider;
  }
 


  public void setFormat(String format)
  {
    if (format != null) {
      _format = format;
    }
  }

 
  public String getFormat()
  {
    return _format;
  }
 

  public void setTarget(String target)
  {
    if (target != null) {
      _target = target;
    }
  }

 
  public String getTarget()
  {
    return _target;
  }
 
 
  public void setLevel(int level)
  {
    _level = level;
  }

 
  public int getLevel()
  {
    return _level;
  }
 

  public int getType()
  {
    return LOGGING;
  }

 
  public String[] getPreferences()
  {
    return PREFERENCES;
  }
   
 
  public Object getPreference(String name)
  {
    if (name.equalsIgnoreCase("provider")) {
      return _provider;
    } else if (name.equalsIgnoreCase("format")) {
      return _format;
    } else if (name.equalsIgnoreCase("target")) {
      return _target;
    } if (name.equalsIgnoreCase("level")) {
      return Log.SEVERITY[_level];
    }
    return super.getPreference(name);
  }
 
 
  public boolean setPreference(String name, String value)
  {
    if (name.equalsIgnoreCase("provider")) {
      setProvider(value);
    } else if (name.equalsIgnoreCase("format")) {
      setFormat(value);
    } else if (name.equalsIgnoreCase("target")) {
      setTarget(value);
    } else if (name.equalsIgnoreCase("level")) {
      int n = Log.SEVERITY.length;
      for(int i=0; i<n; i++) {
        if (Log.SEVERITY[i].equalsIgnoreCase(value)) {
          setLevel(i);
          break;
        }
      }
    } else {
      return super.setPreference(name, value);
    }
    return true;
  }


 
  public Log createLog(String name)
  {
    LogDevice dev;
    if (_provider.equalsIgnoreCase("basic")) {
      dev = new anvil.server.basic.BasicLogDevice();
     
    } else if (_provider != null) {
      try {
        dev = (LogDevice)Class.forName(_provider).newInstance();
      } catch (ConfigurationError e) {
        e.fillInStackTrace();
        throw e;
      } catch (Throwable t) {
        throw new ConfigurationError("Couldn't create log device: "+_provider+", reason: "+t.toString());
      }

    } else {
      dev = new anvil.server.basic.BasicLogDevice();
    }
    dev.initialize(getParent());
    Log log = new Log(name, dev);
    log.setSeverity(_level);
    return log;
  }


}
TOP

Related Classes of anvil.server.LoggingPreferences

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.