Log4j กับ Event Viewer

ปกติแล้ว JBoss จะ log ด้วย Log4j ซึ่ง Log4j ก็ใจดีทำ NTEventLogAppender.dll ไว้ให้โดยสามารถทำ Log ได้ภายใต้ Application โดยสามารถกำหนด Source ได้

แต่ ! บางครั้ง(คุณที่คุณรู้ใคร) อยากได้มากกว่านั้นคือ “สร้างแยกออกมาให้กรูหน่อยได้ไหม คือก็จะเอาแบบนี้ IE ยังทำได้เลย”

เอาแล้วไง เดือดร้อนขึ้นมาทันที แต่ทุกปัญหามีทางออก โดยเฉพาะทางที่เป็น Open Source !! คุณ Log4j ให้ code ที่ใช้เขียนทำงานกับ Event Viewer มาด้วย ดังนั้นเราจึงมีหลักง่ายๆคือ “เอา Source code NTEventLogAppender.dll มา build ใหม่ด้วยชื่อ Event ตามที่เราต้องการ”

1. Download ตัว Log4j มาก่อน(ตัวอย่างนี้ใช้ log4j-1.2.16)ซึ่งจะได้มาทั้ง jar และ source code

2. Unzip แล้วหา Source code ส่วนของ NTEventLogAppender.dll คือ ntdll แต่.. Code ที่ใช้ทำ .dll คงไม่ใช่ Java ดูแล้วเป็น .cpp ครับ ดังนั้นต่อมาคือเราต้องต้องไปโหลด Compiler มาก่อน

3. ตัวที่เลือกมาคือ MinGW โหลดมาแล้ว Install ด้วย “Next Technology” เลย อ้อ!! อย่าลืมเลือก g++ ด้วย

4. Set PATH ให้ MinGW ให้เรียบร้อย อ้อ อย่าลืม Set ของ Ant ด้วยนะ

5. ลอง Compile ดูว่ารอดไหม ? อ้อ!! อย่าลืมใส่ log4j.jar ใน Class Path โดยอาจจะทำไฟล์ build.bat อย่างนี้

ant build -Dclasses.dir=D:\Java\apache-log4j-1.2.16\apache-log4j-1.2.16\log4j-1.2.16.jar

6. สมมุติว่า รอด ก็ทำการแก้ไขไฟล์ nteventlog.cpp โดยแก้คำว่า “\\Application” เป็นชื่อที่เราต้องการเช่น “\\JBoss Application Server”(เวอร์ชั่นนี้แก้ 3 จุด)

7. Compile อีกที ถ้าไม่ซนไปแก้อย่างอื่นก็น่าจะรอดตามๆกันมา

8. ต่อมาก็เอา .dll สดๆออกจากเตาไปวางในที่เหมาะที่ควร system32 พร้อมอุ่นด้วย

regsvr32 "c:\windows\system32\NTEventLogAppender.dll"

9. ไปแก้ jboss-log4j.xml เพื่อกำหนด Source ที่เราทำ

10. ก็จะได้ Event Viewer ตามใจเราแล้ว สาธุ..

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s