Tôi đã một appender log4j định nghĩa như:Log4j - Có nhiều appenders ghi vào tập tin cùng với một trong đó luôn ghi lại
log4j.logger.com.example = DEBUG, filelog
log4j.appender.filelog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.filelog.File=c:/app.log
log4j.appender.filelog.layout=org.apache.log4j.PatternLayout
log4j.appender.filelog.layout.ConversionPattern=%d | %m%n
log4j.appender.filelog.DatePattern=.dd-MM-yyyy
Trong lớp học của tôi, tôi nhận được logger như:
Log logger = LogFactory.getLog(getClass());
Điều này hoạt động đúng. Tôi muốn có một trình ghi nhật ký luôn ghi nhật ký một số thư nhất định (không phải lỗi, nhưng những thứ như giao dịch mất bao lâu). Nếu tôi viết chúng tại DEBUG hoặc INFO, tôi sẽ không thấy chúng nếu mức nhật ký được thay đổi. Tôi nghĩ rằng tôi có thể thực hiện điều này bằng cách sử dụng một appender khác ghi vào cùng một tập tin.
Điều này có thể có hai ứng dụng ghi vào cùng một tệp không? Làm thế nào tôi sẽ nhận được trường hợp logger nơi tôi muốn sử dụng appender gỡ lỗi bình thường và appender giao dịch trong cùng một lớp học? Những tin nhắn này sẽ không nằm trong cùng một gói, vì vậy tôi không thể cấu hình một gói nào đó để luôn đăng nhập. Tôi sẽ phải có những appenders viết các tập tin khác nhau, hoặc tôi có thể lấy chúng cả trong các mã và có cái gì đó như:
Log alwaysLogger = LogFactory.getLog(ALWAYS);
alwaysLogger.debug("This message will always be written regardless of the level set on the filelog appender");
Cập nhật tôi có thể viết thư cho hai tập tin đăng nhập khác nhau nếu cần thiết, nhưng làm thế nào tôi sẽ nhận được bản ghi nhật ký trong lớp học của tôi? Tôi không muốn cấu hình một gói/lớp để luôn luôn sử dụng một appender trên khác như các lớp học sẽ phải đăng nhập thông tin/thông báo lỗi và các giao dịch "luôn luôn" tin nhắn trong một chạy bình thường. Có cách nào để hoàn thành những gì tôi cần ngay cả khi nó ghi vào hai tệp nhật ký khác nhau không?
Ok, ngay cả khi tôi cần phải ghi vào một tệp riêng biệt, làm thế nào tôi có thể nhận được cả hai bản ghi nhật ký trong mã của tôi? Tôi có phải chỉ định những gói nào sẽ sử dụng một appender qua người khác không? Tôi không muốn điều đó xảy ra vì các lớp này sẽ phải ghi lại thông tin/thông báo lỗi cũng như các dòng "luôn luôn". –
Điều này là chính xác. Có thể định cấu hình nhiều ứng dụng cho cùng một tệp sẽ hoạt động trong một khoảng thời gian, nhưng xoay vòng nhật ký sẽ dẫn đến một trong các ứng dụng ghi vào một tệp cũ và cuối cùng là ghi nhật ký thư bị mất. – TaninDirect