Apache: กำหนดค่า“ LogLevel debug” สำหรับบางโมดูลเท่านั้น?


13

ฉันต้องการดีบักปัญหาการตรวจสอบและการอนุญาตบางอย่างบนเว็บเซิร์ฟเวอร์ของฉันโดยเฉพาะกับ mod_authnz_ldap และโมดูล mod_auth * อื่น ๆ

ดังนั้นฉันตั้งLogLevel debugในการกำหนดค่า Apache ทั้งในระดับโลกหรือสำหรับ VirtualHost เดียว สิ่งนี้ให้ข้อมูลที่เป็นประโยชน์จาก mod_authnz_ldap แก่ฉัน แต่มันก็ส่งเสียงรบกวนออกมาเป็นจำนวนมากจากโมดูล SSL ดูตัวอย่างด้านล่าง

มีวิธีในการลด LogLevel สำหรับ ssl_engine * ในขณะที่ยังคงรักษา loglevel สำหรับ mod_authnz_ldap อยู่หรือไม่

ใช่ฉันสามารถยกเว้นบรรทัดที่ใช้บางอย่างเช่นgrep -v ssl_engine logfileแต่ฉันยังต้องการแยกข้อมูลพิเศษนี้จากเครื่องมือแยกวิเคราะห์ syslog อื่น ๆ ฉันต้องการลดการบันทึกจากแหล่งข้อมูลแทนที่จะแยกไว้ที่ปลายทาง

[Tue Jul 06 16:55:31 2010] [debug] ssl_engine_io.c(1830): | 0100: 12 23 e7 0f 45 1f 1f d3-ed 12 f8 12 1f a9 90 85  .+..(........... |
[Tue Jul 06 16:55:31 2010] [debug] mod_authnz_ldap.c(474): [client 10.10.10.123] [96991] auth_ldap authenticate: accepting joe
[Tue Jul 06 16:55:31 2010] [debug] mod_authnz_ldap.c(730): [client 10.10.10.123] [96991] auth_ldap authorise: require group: authorisation successful (attribute memberUid) [Comparison true (cached)][Compare True]
[Tue Jul 06 17:02:17 2010] [debug] ssl_engine_io.c(1830): | 0023: 23 ff 29 5a 4b bd 4c e6-bc 36 22 9c c3 22 c2 4b  ..)ZK.L..6u....K |
[Tue Jul 06 17:02:17 2010] [debug] ssl_engine_io.c(1830): | 0023: 23 ff 29 5a 4b bd 4c e6-bc 22 75 9c c3 b6 22 4b  ..)blahblah|

คำตอบ:


16

ฉันกำลังตอบคำถามของตัวเองสไตล์ Jeopardy

Apache 2.3

สิ่งนี้เป็นไปได้ใน Apache 2.3

Apache> เซิร์ฟเวอร์ HTTP> เอกสาร> รุ่น 2.4> การบันทึกต่อโมดูลบอกว่า:

การบันทึกต่อโมดูล

คำสั่ง LogLevel ช่วยให้คุณสามารถระบุระดับความรุนแรงของบันทึกบนพื้นฐานต่อโมดูล ด้วยวิธีนี้หากคุณกำลังแก้ไขปัญหาโมดูลเพียงโมดูลเดียวคุณสามารถเปลี่ยนระดับเสียงการบันทึกโดยไม่ต้องรับรายละเอียดของโมดูลอื่น ๆ ที่คุณไม่สนใจนี่เป็นประโยชน์อย่างยิ่งสำหรับโมดูลเช่น mod_proxy หรือ mod_rewrite คุณต้องการทราบรายละเอียดเกี่ยวกับสิ่งที่พยายามทำ

ทำสิ่งนี้โดยระบุชื่อของโมดูลในคำสั่ง LogLevel ของคุณ:

LogLevel info rewrite:trace5

สิ่งนี้ตั้ง LogLevel หลักเป็นข้อมูล แต่เปลี่ยนเป็น trace5 สำหรับ mod_rewrite

สิ่งนี้จะแทนที่คำสั่งการบันทึกต่อโมดูลเช่น RewriteLog ที่มีอยู่ในเซิร์ฟเวอร์เวอร์ชันก่อนหน้า

ภาพรวมของคุณสมบัติใหม่ใน Apache HTTP Server 2.4พูดว่า:

การกำหนดค่า LogLevel สำหรับแต่ละโมดูลและต่อไดเรกทอรีขณะนี้คุณสามารถกำหนดค่า LogLevel สำหรับแต่ละโมดูลและต่อไดเรกทอรี ระดับใหม่ trace1 ถึง trace8 ถูกเพิ่มเหนือระดับบันทึกการดีบัก

ยังเห็นการอภิปรายใน Apache-devเมล

Apache 2.2 และก่อนหน้านี้:

ไม่ปัจจุบันนี้ไม่สามารถทำได้ใน Apache 2.2 คู่มือที่เซิร์ฟเวอร์ HTTP> เอกสาร> เวอร์ชัน 2.2> โมดูล"LogLevel Directive"ไม่แสดงตัวเลือกนี้ ตัวเลือกเดียวในปัจจุบันคือ "grep -v" บรรทัดที่ละเมิด

Apache 2.4 (เสนอตอนเขียน):

สิ่งนี้จะรวมอยู่ใน Apache 2.4 เอกสาร Apache ในลำต้น (2.3)ปัจจุบันพูดว่า:

ความเข้ากันได้: การกำหนดค่าต่อโมดูลและต่อไดเรกทอรีมีอยู่ใน Apache HTTP Server 2.3.6 และใหม่กว่า

และ:

การระบุระดับที่ไม่มีชื่อโมดูลจะรีเซ็ตระดับสำหรับโมดูลทั้งหมดเป็นระดับนั้น การระบุระดับด้วยชื่อโมดูลจะกำหนดระดับสำหรับโมดูลนั้นเท่านั้น เป็นไปได้ที่จะใช้ชื่อไฟล์ซอร์สโมดูลตัวระบุโมดูลหรือตัวระบุโมดูลที่มีส่วนท้าย _module ถูกละเว้นเป็นข้อกำหนดคุณสมบัติของโมดูล ซึ่งหมายความว่าข้อกำหนดสามข้อต่อไปนี้เทียบเท่ากัน:

LogLevel info ssl:warn
LogLevel info mod_ssl.c:warn
LogLevel info ssl_module:warn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.