Xin chào Tôi đang cố gắng triển khai đăng nhập java trong ứng dụng của mình. Tôi muốn sử dụng hai trình xử lý. Một trình xử lý tệp và trình xử lý bảng điều khiển của riêng tôi. Cả hai trình xử lý của tôi đều hoạt động tốt. Việc ghi nhật ký của tôi được gửi đến một tệp và đến bảng điều khiển. Nhật ký của tôi cũng được gửi đến trình xử lý giao diện điều khiển mặc định, mà tôi không muốn. Nếu bạn chạy mã của tôi, bạn sẽ thấy thêm hai dòng được gửi đến bảng điều khiển. Tôi không muốn sử dụng trình xử lý bảng điều khiển mặc định. Có ai biết cách vô hiệu hóa trình xử lý giao diện điều khiển mặc định không. Tôi chỉ muốn sử dụng hai trình xử lý mà tôi đã tạo.
Handler fh = new FileHandler("test.txt");
fh.setFormatter(formatter);
logger.addHandler(fh);
Handler ch = new ConsoleHandler();
ch.setFormatter(formatter);
logger.addHandler(ch);
import java.util.Date;
import java.util.logging.ConsoleHandler;
import java.util.logging.FileHandler;
import java.util.logging.Formatter;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.LogRecord;
import java.util.logging.Logger;
public class LoggingExample {
private static Logger logger = Logger.getLogger("test");
static {
try {
logger.setLevel(Level.INFO);
Formatter formatter = new Formatter() {
@Override
public String format(LogRecord arg0) {
StringBuilder b = new StringBuilder();
b.append(new Date());
b.append(" ");
b.append(arg0.getSourceClassName());
b.append(" ");
b.append(arg0.getSourceMethodName());
b.append(" ");
b.append(arg0.getLevel());
b.append(" ");
b.append(arg0.getMessage());
b.append(System.getProperty("line.separator"));
return b.toString();
}
};
Handler fh = new FileHandler("test.txt");
fh.setFormatter(formatter);
logger.addHandler(fh);
Handler ch = new ConsoleHandler();
ch.setFormatter(formatter);
logger.addHandler(ch);
LogManager lm = LogManager.getLogManager();
lm.addLogger(logger);
} catch (Throwable e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
logger.info("why does my test application use the standard console logger ?\n" + " I want only my console handler (Handler ch)\n " + "how can i turn the standard logger to the console off. ??");
}
}
b.append(formatMessage(arg0))
thay vìb.append(arg0.getMessage())
. VớiformatMessage
phương pháp bạn đang làm cho bộ định dạng của bạn tương thích với việc sử dụngpublic void log(Level level, String msg, Object param1)
và các phương pháp tương tự.