ในองค์กรของฉันเราได้รวบรวมกฎ / guildelines เกี่ยวกับการบันทึกที่ฉันต้องการทราบว่าคุณสามารถเพิ่มหรือแสดงความคิดเห็นได้หรือไม่
เราใช้ Java แต่คุณสามารถแสดงความคิดเห็นโดยทั่วไปเกี่ยวกับ loggin - กฎและคำแนะนำ
ใช้ระดับการบันทึกที่ถูกต้อง
- ข้อผิดพลาด: มีบางอย่างผิดปกติและต้องแก้ไขโดยทันที
- คำเตือน: กระบวนการสามารถดำเนินการต่อโดยไม่ต้องแก้ไข แอปพลิเคชันควรยอมรับระดับนี้ แต่คำเตือนควรได้รับการตรวจสอบเสมอ
- ข้อมูล: ข้อมูลว่ากระบวนการสำคัญเสร็จสิ้นแล้ว
- DEBUG ใช้ระหว่างการพัฒนาเท่านั้น
ตรวจสอบให้แน่ใจว่าคุณรู้ว่าคุณกำลังบันทึกอะไรอยู่
หลีกเลี่ยงการบันทึกมีผลต่อพฤติกรรมของแอปพลิเคชัน
ฟังก์ชั่นของการบันทึกควรจะเขียนข้อความในบันทึก
- ข้อความบันทึกควรเป็นข้อความอธิบายสั้นกระชับและรัดกุม
ไม่มีการใช้ข้อความไร้สาระมากเมื่อทำการแก้ไขปัญหา
- ใส่คุณสมบัติที่เหมาะสมใน log4j
ใส่ในที่ถูกวิธีและชั้นเรียนจะถูกเขียนโดยอัตโนมัติ
ตัวอย่าง:
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/
- ค่าบันทึก
โปรดบันทึกค่าจากแอปพลิเคชัน
- บันทึกคำนำหน้า
ระบุว่าส่วนใดของแอปพลิเคชันคือการบันทึกถูกเขียนโดยเฉพาะอย่างยิ่งกับบางสิ่งสำหรับคำนำหน้าโครงการที่ตกลงกันไว้เช่น PANDORA_DB
- ปริมาณข้อความ
ระวังเพื่อไม่ให้มีการบันทึกข้อความมากเกินไป มันมีผลต่อประสิทธิภาพของแอพ
- รูปแบบการบันทึก:
- มีหลายตัวแปรและวิธีการใช้กับ log4j แต่เราต้องการใช้รูปแบบต่อไปนี้อย่างสม่ำเสมอเมื่อเราเข้าสู่ระบบที่ข้อยกเว้น:
logger.error("PANDORA_DB2: Fel vid hämtning av frist i
TP210_RAPPORTFRIST", e);
ในตัวอย่างข้างต้นจะถือว่าเราได้ตั้งค่าคุณสมบัติ log4j เพื่อให้มันเขียนคลาสและวิธีการโดยอัตโนมัติ
ใช้ตัวบันทึกเสมอไม่ใช่ดังต่อไปนี้:
System.out.println(), System.err.println(), e.printStackTrace()
หากแอปพลิเคชันเว็บใช้เฟรมเวิร์กของเราคุณจะได้รับข้อมูลข้อผิดพลาดโดยละเอียดจาก EJB หากใช้การลองจับในตัวจัดการและการบันทึกตามรุ่นด้านบน:
ในโครงการของเราเราใช้รูปแบบการแปลงด้วยวิธีการและชื่อชั้นเรียนที่ถูกเขียนออกมาโดยอัตโนมัติ ที่นี่เราใช้ pattents ที่แตกต่างกันสองแบบสำหรับคอนโซลและสำหรับ datefileappender:
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.DATEDFILE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
ในทั้งตัวอย่างข้างต้นวิธีการและคลาส wioll จะถูกเขียนออกมา ในหมายเลขแถวคอนโซลก็จะถูกเขียนของเรา
toString()
กรุณามีtoString()
สำหรับทุกวัตถุ EX:
@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();
}
แทนที่จะใช้วิธีพิเศษซึ่งสร้างผลลัพธ์เหล่านี้
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);
}
ดังนั้นมีอะไรที่คุณสามารถเพิ่มแสดงความคิดเห็นหรือค้นหาที่น่าสงสัยด้วยวิธีการเหล่านี้ในการใช้การบันทึกหรือไม่ รู้สึกอิสระที่จะตอบหรือแสดงความคิดเห็นแม้ว่าจะไม่เกี่ยวข้องกับ Java, Java และ log4j เป็นเพียงการดำเนินการตามเหตุผลนี้