logback-android/src/main/java/ch/qos/logback/classic/net/server/RemoteAppenderStreamClient.java
public void run() {
    logger.info(this + ": connected");
    HardenedObjectInputStream ois = null;
    try {
      ois = createObjectInputStream();
      while (true) {
        // read an event from the wire
        ILoggingEvent event = (ILoggingEvent) ois.readObject();
        // get a logger from the hierarchy. The name of the logger is taken to
        // be the name contained in the event.
        Logger remoteLogger = lc.getLogger(event.getLoggerName());
        // apply the logger-level filter
        if (remoteLogger.isEnabledFor(event.getLevel())) {
          // finally log the event as if was generated locally
          remoteLogger.callAppenders(event);
        }
      }
    }
    catch (EOFException ex) {
      // this is normal and expected
      assert true;
    }
    catch (IOException ex) {
      logger.info(this + ": " + ex);
    }
    catch (ClassNotFoundException ex) {
      logger.error(this + ": unknown event class");
    }
    catch (RuntimeException ex) {
      logger.error(this + ": " + ex);
    }
    finally {
      if (ois != null) {
        CloseUtil.closeQuietly(ois);
      }
      close();
      logger.info(this + ": connection closed");
    }
  }
public void run() {
    logger.info(this + ": connected");
    HardenedObjectInputStream ois = null;
    try {
      ois = createObjectInputStream();
      while (true) {
        // read an event from the wire
        ILoggingEvent event = (ILoggingEvent) ois.readObject();
        // get a logger from the hierarchy. The name of the logger is taken to
        // be the name contained in the event.
        Logger remoteLogger = lc.getLogger(event.getLoggerName());
        // apply the logger-level filter
        if (remoteLogger.isEnabledFor(event.getLevel())) {
          // finally log the event as if was generated locally
          remoteLogger.callAppenders(event);
        }
      }
    }
    catch (EOFException ex) {
      // this is normal and expected
      assert true;
    }
    catch (IOException ex) {
      logger.info(this + ": " + ex);
    }
    catch (ClassNotFoundException ex) {
      logger.error(this + ": unknown event class");
    }
    catch (RuntimeException ex) {
      logger.error(this + ": " + ex);
    }
    finally {
      if (ois != null) {
        CloseUtil.closeQuietly(ois);
      }
      close();
      logger.info(this + ": connection closed");
    }
  }
{@inheritDoc}