通常记录器用于将给定消息(错误、警告或信息)记录到日志文件(简单文本文件或 xml)
问问题
225 次
1 回答
0
好吧,显而易见的选择是 Strategy(一个可以配置为使用不同输出选项的记录器)和 Composite(在多个输出输出上多路复用输出)。
所以像这样(在Java中):
public class Logger {
public interface LogOutput {
void out(final String s);
}
// Composite - use to send logging to several destinations
public LogOutput makeComposite(final LogOutput... loggers) {
return new LogOutput() {
void out(final String s) {
for (final LogOutput l : loggers) {
l.out(s);
}
}
}
}
private static currentLogger = new LogOutput() {
void out(final String s) {
// Do nothing as default - no strategy set
}
}
public static log(final String s) {
currentLogger.out(s);
}
// Strategy: Set a new strategy for output
public static setLogger(final LogOutput l) {
currentLogger = l;
}
}
于 2012-10-11T06:59:09.053 回答