Hi,
I have been developing logging system in Java and the framework that we have been using is similar to Log4J in with some difference. Here is the list of differences: - The logging interface DO NOT take a single argument of message. In fact, it uses a selection of multiple arguments. So the logging call is basically with the bundle name, message ID and the arguments. In fact, this is more efficient, it is because we don't spend time on packing up the message with its argument and log the message with a log level. Meanwhile the parent category has a lower log level. - We separate the format of logging and localisation from the actual log file. The actual log file is in some internal format (such as XML). We only localise and format the style when we need to VIEW the log file. This is learnt from our past product that some customers actually want logging messages in their own native language (e.g. German) and then later they find out some technical problem in the log messages. With this approach, the customer can just send the raw log file to the technical support. The technical support staff can then VIEW log file to his/her native language (e.g French). - With log messages stored in raw format, the logging time can be stored as the number of milli secs instead. Log viewer can now do a fast binary search chop based on the log time (if the log file is huge), combine with multiple log filters such as the set of interested log levels. The log viewer is used as the Decorator pattern. Any combination of log filters can be built on top of the log file reader and still treat it as a log reader, after that we can format to any style and also localised the log messages. - The log level value should be in bitset, ie, 1, 2, 4, 8, 16, etc, such that we can filter log messages in either threshold or bitset manners. Not just threshold. - As the log file contains raw format. We can use the message ID and arguments, log time to build up a summary table with some statistic information according to the purposes of the application. Please send me comment if you disagree any of these points. I could be wrong. Many thanks Joe --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]