You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by mw...@apache.org on 2002/09/20 07:30:55 UTC

cvs commit: jakarta-log4j/src/java/org/apache/log4j Receiver.java

mwomack     2002/09/19 22:30:55

  Added:       src/java/org/apache/log4j Receiver.java
  Log:
  Receiver is a specific type of Plugin that "imports" remote logging events into a local LoggerRepository.
  
  Revision  Changes    Path
  1.1                  jakarta-log4j/src/java/org/apache/log4j/Receiver.java
  
  Index: Receiver.java
  ===================================================================
  /*
   * Copyright (C) The Apache Software Foundation. All rights reserved.
   *
   * This software is published under the terms of the Apache Software
   * License version 1.1, a copy of which has been included with this
   * distribution in the LICENSE.txt file.  */
  
  package org.apache.log4j;
  
  import java.util.Vector;
  import org.apache.log4j.spi.LoggingEvent;
  import org.apache.log4j.spi.LoggerRepository;
  
  /**
    Defines the base class for Receiver plugins.
    
    <p>Just as Appenders send logging events outside of the log4j
    environment (to files, to smtp, to sockets, etc), Receivers bring
    logging events inside the log4j environment.
    
    <p>Receivers are primarily meant to support the receiving of
    remote logging events from another process. For example, 
    SocketAppender "appends" a logging event to a socket, configured 
    for a specific host and port number.  On the receiving side of 
    the socket can be a SocketReceiver object.  The SocketReceiver 
    object receives the logging event, and then "posts" it to the
    log4j environment (LoggerRepository) on the receiving machine, to 
    be handled by the configured appenders, etc.  The various 
    settings in this environment (Logger levels, Appender filters & 
    thresholds) are applied to the received logging event.
    
    <p>Receivers can also be used to "import" log messages from other
    logging packages into the log4j environment.
    
    <p>Receivers can be configured to post events to a given
    LoggerRepository. If a repository is not specified, then the
    default repository value returned by
    LogManager.getLoggerRepository() should be used.
    
    <p>Subclasses of Receiver must implement the isActive(),
    activateOptions(), and shutdown() methods. The doPost() method
    is provided to standardize the "import" of remote events into
    the repository.
    
    @author Mark Womack
    @since 1.3
  */
  public abstract class Receiver extends PluginSkeleton {
    /**
      Posts the logging event to a logger in the configured logger
      repository. */    
    public void doPost(LoggingEvent event) {
      // get the "local" logger for this event from the
      // configured repository.
    	Logger localLogger = 
        getLoggerRepository().getLogger(event.categoryName);
    	
    	// if the logger level is greater or equal to the level
    	// of the event, use the logger to append the event.
    	if(event.level.isGreaterOrEqual(localLogger.getEffectiveLevel())) {
        // set the logger for the event
        event.logger = localLogger;
        
        // call the loggers appenders to process the event
    	  localLogger.callAppenders(event);
    	}
    }
  }
  
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>