ใน Mac OS X ฉันจะเข้าสู่ Console.app ได้อย่างไรจากเทอร์มินัล


8

ฉันเห็นการใช้/dev/consoleสคริปต์หลาย ๆ ตัวสำหรับ Mac OSX แต่ฉันไม่แน่ใจว่าจะใช้งานอย่างไร ฉันตรวจสอบ Console.app และไม่เห็นผลลัพธ์ของคำสั่งทดสอบ:

ทดสอบเสียงก้อง> / dev / console

ถูกพิมพ์ออกมาที่นั่นแล้วมันไปที่ไหนหรือคุณจะใช้มันอย่างไร?


@Qosmo คำถามนี้ถูกต้อง 100% สำหรับผู้ใช้ระดับสูงและไม่จำเป็นต้องมีหรือเหตุผลในการโยกย้าย
BinaryMisfit

ความถูกต้องไม่ได้บอกเป็นนัย ๆ ว่ามันจะดีขึ้นหรือไม่ ทำไมมันถูกสร้างขึ้น? อย่างไรก็ตามมันก็เป็นเพียงข้อเสนอแนะ ...
กล้าหาญ Newbie

คำตอบ:


7

/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" ใช้ทำอะไร? มันเป็นส่วนหนึ่งของ syslog หรือไม่?
cwd

@cwd: นอกจากนี้ยังใช้เครื่องมืออำนวยความสะดวก syslog syslog แอปเปิ้ลมีสองอินเตอร์เฟซหลัก: syslog (3)และASL (3) อดีตนั้นค่อนข้างเป็นมาตรฐานในระบบ Unix-y ส่วนใหญ่ในทุกวันนี้ คนตัดไม้ใช้มัน ส่วนหลังเป็นส่วนขยายเฉพาะของ Apple syslogคำสั่งใช้มัน คอนโซลเห็นข้อความจากทั้งคู่ แต่การค้นหา“ ข้อความคอนโซล” ต้องการค่าอำนวยความสะดวกแบบขยายของ Apple (ตัวบันทึกที่ไม่สามารถทำได้)
Chris Johnsen

7

ฉันใช้:

logger Hello World

ใช้ได้สำหรับฉันเสมอ ดัมพ์ "hello world" ไปยัง syslog ซึ่งควรแสดงใน console.app


0

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


0

คุณสามารถเขียนไปยังไฟล์ที่คุณเลือกซึ่งคุณสามารถดูได้ในแอปพลิเคชันคอนโซล

หากคุณต้องการบันทึกการใช้ระดับผู้ใช้:

echo "test" > /Users/$USER/Library/Logs/your_script.log

หรือสำหรับบางสิ่งที่โหลดสำหรับผู้ใช้ทั้งหมด:

echo "test" > /Library/Logs/your_script.log
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.