Trong tổ chức của tôi, chúng tôi đã đưa ra một số quy tắc / bang hội về việc đăng nhập mà tôi muốn biết nếu bạn có thể thêm hoặc nhận xét.
Chúng tôi sử dụng Java nhưng bạn có thể nhận xét chung về loggin - quy tắc và lời khuyên
Sử dụng mức ghi nhật ký chính xác
- LRI: Đã xảy ra lỗi và cần khắc phục ngay lập tức
- CẢNH BÁO: Quá trình có thể tiếp tục mà không cần sửa chữa. Ứng dụng nên chấp nhận mức này nhưng cảnh báo phải luôn được điều tra.
- THÔNG TIN: Thông tin rằng một quá trình quan trọng đã kết thúc
- TRÁCH NHIỆM. Chỉ được sử dụng trong quá trình phát triển
Hãy chắc chắn rằng bạn biết những gì bạn đang đăng nhập.
Tránh việc đăng nhập ảnh hưởng đến hành vi của ứng dụng
Chức năng của việc ghi nhật ký sẽ là ghi thông điệp trong nhật ký.
- Thông điệp tường trình phải được mô tả, rõ ràng, ngắn gọn và súc tích.
Không có nhiều sử dụng một tin nhắn vô nghĩa khi xử lý sự cố.
- Đặt các thuộc tính đúng trong log4j
Đặt trong đó phương thức đúng và lớp được viết tự động.
Thí dụ:
Datedfile -web
log4j.rootLogger=ERROR, DATEDFILE
log4j.logger.org.springframework=INFO
log4j.logger.waffle=ERROR
log4j.logger.se.prv=INFO
log4j.logger.se.prv.common.mvc=INFO
log4j.logger.se.prv.omklassning=DEBUG
log4j.appender.DATEDFILE=biz.minaret.log4j.DatedFileAppender
log4j.appender.DATEDFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATEDFILE.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%C{1}.%M] - %m%n
log4j.appender.DATEDFILE.Prefix=omklassning.
log4j.appender.DATEDFILE.Suffix=.log
log4j.appender.DATEDFILE.Directory=//localhost/WebSphereLog/omklassning/
- Giá trị nhật ký.
Vui lòng đăng nhập giá trị từ ứng dụng.
- Đăng nhập tiền tố.
Nói rõ phần nào của ứng dụng đó là ghi nhật ký được viết từ, tốt nhất là với một cái gì đó cho tiền tố được dự án đồng ý, ví dụ PANDORA_DB
- Số lượng văn bản.
Hãy cẩn thận để không có quá nhiều văn bản đăng nhập. Nó có thể ảnh hưởng đến hiệu suất của ứng dụng.
- Định dạng đăng nhập:
-Có một số biến thể và phương thức sử dụng với log4j nhưng chúng tôi muốn sử dụng thống nhất định dạng sau, khi chúng tôi đăng nhập ở các trường hợp ngoại lệ:
logger.error("PANDORA_DB2: Fel vid hämtning av frist i
TP210_RAPPORTFRIST", e);
Trong ví dụ trên, chúng ta giả sử rằng chúng ta đã đặt các thuộc tính log4j để nó tự động viết lớp và phương thức.
Luôn sử dụng logger và không như sau:
System.out.println(), System.err.println(), e.printStackTrace()
Nếu ứng dụng web sử dụng khung của chúng tôi, bạn có thể nhận thông tin lỗi rất chi tiết từ EJB, nếu sử dụng tính năng thử bắt trong trình xử lý và ghi nhật ký theo mô hình ở trên:
Trong dự án của chúng tôi, chúng tôi sử dụng mẫu chuyển đổi này với tên phương thức và tên lớp được viết tự động. Ở đây chúng tôi sử dụng hai pattents khác nhau cho console và cho datefil Ứng dụng:
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.DATEDFILE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
Trong cả hai ví dụ trên, phương thức wioll lớp được viết ra. Trong số hàng điều khiển cũng sẽ được viết của chúng tôi.
toString()
Hãy có một toString()
cho mọi đối tượng. VÍ DỤ:
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(" DwfInformation [ ");
sb.append("cc: ").append(cc);
sb.append("pn: ").append(pn);
sb.append("kc: ").append(kc);
sb.append("numberOfPages: ").append(numberOfPages);
sb.append("publicationDate: ").append(publicationDate);
sb.append("version: ").append(version);
sb.append(" ]");
return sb.toString();
}
thay vì phương pháp đặc biệt làm cho các đầu ra này
public void printAll()
{
logger.info("inbet: " + getInbetInput());
logger.info("betdat: " + betdat);
logger.info("betid: " + betid);
logger.info("send: " + send);
logger.info("appr: " + appr);
logger.info("rereg: " + rereg);
logger.info("NY: " + ny);
logger.info("CNT: " + cnt);
}
Vì vậy, có bất cứ điều gì bạn có thể thêm, nhận xét hoặc tìm thấy nghi vấn với những cách sử dụng đăng nhập? Vui lòng trả lời hoặc nhận xét ngay cả khi nó không liên quan đến Java, Java và log4j chỉ là một triển khai về cách thức này được suy luận.