MobiLink Synchronization User's Guide
Writing Synchronization Scripts in Java
Writing Java synchronization logic
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 synchronization 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(); } } }
// This line of code will register 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 ));
addErrorListener, removeErrorListener, addWarningListener, removeWarningListener in ServerContext interface