ฉันเห็นการใช้/dev/console
สคริปต์หลาย ๆ ตัวสำหรับ Mac OSX แต่ฉันไม่แน่ใจว่าจะใช้งานอย่างไร ฉันตรวจสอบ Console.app และไม่เห็นผลลัพธ์ของคำสั่งทดสอบ:
ทดสอบเสียงก้อง> / dev / console
ถูกพิมพ์ออกมาที่นั่นแล้วมันไปที่ไหนหรือคุณจะใช้มันอย่างไร?
ฉันเห็นการใช้/dev/console
สคริปต์หลาย ๆ ตัวสำหรับ Mac OSX แต่ฉันไม่แน่ใจว่าจะใช้งานอย่างไร ฉันตรวจสอบ Console.app และไม่เห็นผลลัพธ์ของคำสั่งทดสอบ:
ทดสอบเสียงก้อง> / dev / console
ถูกพิมพ์ออกมาที่นั่นแล้วมันไปที่ไหนหรือคุณจะใช้มันอย่างไร?
คำตอบ:
/dev/console
อุปกรณ์ไม่เกี่ยวข้องโดยเฉพาะอย่างยิ่งกับคอนโซลแอพลิเคชัน
ใน Mac OS X 10.6 แอปพลิเคชันคอนโซลมีแหล่งข้อมูลสองประเภทที่อ่าน: ไฟล์บันทึกปกติ (เช่นไฟล์ใน/var/log/
) และข้อความที่บันทึกผ่านทางระบบช่วยเหลือ syslog (Apple ขยาย)
ถ้าคุณมีล็อกไฟล์ที่คุณต้องการในการตรวจสอบคุณสามารถใช้ไฟล์ > เปิด ...รายการเมนู (⌘O) เพื่อดูไฟล์ในคอนโซล
หมายเหตุ: วิธีเดียวที่จะลบไฟล์ออกจากรายการไฟล์ของConsoleดูเหมือนว่าจะใช้ไฟล์ > ย้ายไปที่รายการเมนูถังขยะ (⌘⌫); ได้เตรียมที่จะดึงไฟล์ออกจากถังขยะถ้าคุณเพียงต้องการที่จะหยุดดูมันในคอนโซล
คุณสามารถใช้โปรแกรมบรรทัดคำสั่งsyslogเพื่อส่งข้อความไปยังสิ่งอำนวยความสะดวก syslog
syslog -s Your message goes here. \(quote special chars for the shell'!)'
อย่างไรก็ตามภายใต้การกำหนดค่าเริ่มต้นข้อความนี้จะไม่ปรากฏในมุมมองคอนโซลใด ๆเนื่องจากเป็น "ระดับ" ต่ำเกินไปที่จะสำคัญ นี้กรองเบื้องต้นเป็นเพราะโดยsyslogd มันถูกกำหนดค่าโดยasl.conf
และsyslog.conf
ไฟล์ การกำหนดค่าเริ่มต้นจะไม่เก็บข้อความส่วนใหญ่หากระดับต่ำเกินไป (และเป็นsyslog -s
ค่าเริ่มต้นถึงระดับต่ำสุด) คอนโซลสามารถแสดงข้อความที่จัดเก็บโดยsyslogdเท่านั้น
คุณสามารถเปลี่ยนค่าของฟิลด์ระดับได้โดยใช้-l
ตัวเลือก:
syslog -s -l notice This message should show up in \"All Messages\" \
with a Facility of syslog.
notice
ระดับ (ค่าเริ่มต้น) ที่ระดับต่ำสุดที่syslogdจะเก็บข้อความมากที่สุด
ข้อความที่สร้างขึ้นเช่นนี้จะแสดงในคอนโซล ‘s ในตัว‘ทุก messsages’ค้นหาฐานข้อมูล
(ไฟล์All Messages.aslquery
ใน/Applications/Utilities/Console.app/Contents/Resources/ASLQueries/
ทางเทคนิค จำกัด ไปกับข้อความที่สนามสิ่งอำนวยความสะดวก‘มี’สตริงว่าง แต่สภาพนี้เป็นที่พอใจนิด ๆ จากสิ่งอำนวยความสะดวกใด ๆ ราคา).
หากคุณต้องการให้ข้อความของคุณจะปรากฏในคอนโซล ‘s ตัวในการค้นหาฐานข้อมูล‘คอนโซลข้อความ’แล้วคุณจะต้องเป็นที่เฉพาะเจาะจงมากขึ้นอีกนิด มันจะแสดงเฉพาะข้อความ (เก็บไว้) ที่มีเขตข้อมูลสิ่งอำนวยความสะดวกที่เท่ากับcom.apple.console
(ดูไฟล์Console Messages.aslquery
ใน/Applications/Utilities/Console.app/Contents/Resources/ASLQueries/
) คุณสามารถสร้างข้อความดังกล่าวด้วยsyslogโดย-k
ตัวเลือกเพื่อตั้งค่าฟิลด์สิ่งอำนวยความสะดวก
syslog -s -k Facility com.apple.console \
-k Level notice \
-k Message 'This will show up in "Console Messages"'
เมื่อใช้-k
งานตัวเลือกทั้งหมดและข้อความจะต้องระบุด้วยชุด-k key value
ข้อโต้แย้ง (เราไม่สามารถใช้-l
เพื่อกำหนดระดับ) ซึ่งหมายความว่าเราต้องใส่ข้อความเป็นอาร์กิวเมนต์เดียวเพื่อให้สามารถเป็นค่าของเขตข้อมูลข้อความ
ฉันใช้:
logger Hello World
ใช้ได้สำหรับฉันเสมอ ดัมพ์ "hello world" ไปยัง syslog ซึ่งควรแสดงใน console.app
ฉันไม่แน่ใจ แต่อาจเป็นอุปกรณ์ที่เรียกว่าเมื่อ> คอนโซลถูกป้อนในฟิลด์ชื่อผู้ใช้ของหน้าต่างเข้าสู่ระบบ เมื่อคุณเข้าสู่ด้านบนมันจะทำการทิ้ง CLI ให้คุณ
คุณสามารถเขียนไปยังไฟล์ที่คุณเลือกซึ่งคุณสามารถดูได้ในแอปพลิเคชันคอนโซล
หากคุณต้องการบันทึกการใช้ระดับผู้ใช้:
echo "test" > /Users/$USER/Library/Logs/your_script.log
หรือสำหรับบางสิ่งที่โหลดสำหรับผู้ใช้ทั้งหมด:
echo "test" > /Library/Logs/your_script.log