2008年2月20日星期三

Handling MobiLink server errors in Java through Implementing LogListener Interface

When scanning the log is not sufficient, you can monitor your applications programmatically. For example, you can send messages of a certain type in an email.
You can write methods that are passed a class representing every error or warning message that is printed to the log. This may help you monitor and audit a MobiLink server.
The following code installs a LogListener for all warning messages, and writes the information to a file.



class TestLogListener implements LogListener {
  FileOutputStream _out_file;
  public TestLogListener( FileOutputStream out_file ) {
    _out_file       = out_file;
  }

  public void messageLogged(  ServerContext   sc,
    LogMessage msg ) {
    String  type;
    String  user;
    try {
      if(msg.getType() == LogMessage.ERROR) {
        type = "ERROR";
      } else if(msg.getType() == LogMessage.WARNING) {
        type = "WARNING";
      } else {
        type = "UNKNOWN!!!";
      }

      user = msg.getUser();
      if( user == null ) {
        user = "NULL";
      }
      _out_file.write(
        ("Caught msg type=" + type +
         " user=" + user +
         " text=" +msg.getText() +
         "\n").getBytes() );
      _out_file.flush();
    } catch( Exception e ) {
      // Print some error output to the MobiLink log.
      e.printStackTrace();
    }
  }
}

 




The following code registers TestLogListener to receive warning messages. Call this code from anywhere that has access to the ServerContext such as a class constructor or synchronization script.
// ServerContext serv_context; serv_context.addWarningListener(       new MyLogListener( ll_out_file ));




========================
http://iihero.8800.org/
========================
Regards,
Sean.
▁▁▁▁▁
▕ █ ██ ▏
▕▔▔ ▔▔\
▕═╭╮══╭╮══
▔╰╯▔▔╰╯▔▔o
▔▔▔▔▔▔▔▔▔▔

没有评论:

发表评论