When scanning the log is not enough, 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)
); |
See also![]() |
Discuss this page in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |