คำถามติดแท็ก logging

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

30
Logcat ไม่แสดงการเรียกบันทึกของฉัน
ฉันเป็น noob ทั้งหมดในการเขียนโปรแกรม Android และต้องการเรียนรู้วิธีการดีบักแอปของฉัน ดูเหมือนว่าจะไม่มีการโทร Log.i | d | v ของฉันปรากฏใน LogCat นี่คือรหัสที่ฉันใช้ อย่างที่คุณเห็นฉันได้กำหนดค่าคงที่ LOG_TAG แต่ดูเหมือนจะไม่พบใน LogCat ฉันได้นำเข้า android.util.Log ด้วยและฉันได้ตรวจสอบให้แน่ใจว่าใน AndroidManifest ของฉันฉันได้ตั้งค่า "debuggable" เป็น TRUE ฉันได้ตรวจสอบhttp://developer.android.com/reference/android/util/Log.html โดยไม่มีโชคในการแก้ไขปัญหานี้ ผมทำอะไรผิดหรือเปล่า? ฉันกำลังมองหาสถานที่ที่ถูกต้องหรือไม่? ฉันได้ลองใช้มุมมอง DDMS และ Debug แล้วโดยไม่มีโชค ความช่วยเหลือใด ๆ สำหรับ noob นี้จะได้รับการชื่นชมอย่างมาก ขอบคุณ สภาพแวดล้อมของฉัน: Windows XP IDE = Eclipse เวอร์ชัน: 3.6.1, Build …

11
คุณกำหนดค่าการบันทึกใน Hibernate 4 เพื่อใช้ SLF4J ได้อย่างไร
ใช้ไฮเบอร์เนต 3.x slf4jสำหรับการบันทึก ไฮเบอร์เนตใช้ 4.xJBoss การเข้าสู่ระบบ. ฉันกำลังเขียนแอปพลิเคชันแบบสแตนด์อโลนซึ่งใช้ Hibernate 4 และ SLF4J สำหรับการบันทึก ฉันจะกำหนดค่า Hibernate เพื่อเข้าสู่ SLF4J ได้อย่างไร หากไม่สามารถทำได้ฉันจะกำหนดค่าการบันทึกของไฮเบอร์เนตได้อย่างไร ส่วนคู่มือ Hibernate 4.1 เกี่ยวกับการบันทึกเริ่มต้นด้วยคำเตือนว่าเป็น ... ล้าสมัยโดยสิ้นเชิง Hibernate ใช้ JBoss Logging ตั้งแต่ 4.0 สิ่งนี้จะได้รับการจัดทำเป็นเอกสารเมื่อเราย้ายเนื้อหานี้ไปยังคู่มือสำหรับนักพัฒนา ... พูดถึง SLF4J ต่อไปก็ไม่มีประโยชน์ ทั้งคู่มือเริ่มต้นใช้งานหรือคู่มือสำหรับนักพัฒนาซอฟต์แวร์ไม่ได้พูดถึงการบันทึกเลย หรือไม่คำแนะนำการโยกย้าย ฉันได้ค้นหาเอกสารเกี่ยวกับ jboss-logging แล้ว แต่ไม่พบเลย หน้า GitHub จะเงียบและ JBoss ของหน้าโครงการชุมชนไม่ได้แม้กระทั่งรายการ JBoss การเข้าสู่ระบบ ฉันสงสัยว่าตัวติดตามข้อบกพร่องของโครงการอาจมีปัญหาใด ๆ …

6
Python / Django: เข้าสู่คอนโซลภายใต้รันเนอร์เข้าสู่ไฟล์ภายใต้ Apache
ฉันจะส่งข้อความติดตามไปยังคอนโซลได้อย่างไร (เช่นprint) เมื่อฉันเรียกใช้แอพ Django ของฉันภายใต้manage.py runserverแต่มีข้อความเหล่านั้นส่งไปยังไฟล์บันทึกเมื่อฉันเรียกใช้แอพภายใต้ Apache ฉันได้ตรวจสอบการบันทึก Djangoและแม้ว่าฉันจะประทับใจกับความยืดหยุ่นและความสามารถในการกำหนดค่าสำหรับการใช้งานขั้นสูง แต่ฉันก็ยังคงนิ่งงันกับวิธีจัดการกรณีการใช้งานอย่างง่ายของฉัน
114 python  django  logging 

1
คุ้มไหมที่จะใช้ slf4j กับ log4j2
ฉันไม่สามารถตัดสินใจได้ว่าจะใช้ slf4j หรือไม่กับ log4j2 จากโพสต์ออนไลน์ดูเหมือนว่ามันจะมีผลงานที่ยอดเยี่ยม แต่จำเป็นจริงๆ จุดเหล่านี้ยังสนับสนุน log4j2: SLF4J บังคับให้แอปพลิเคชันของคุณบันทึกสตริง Log4j 2 API รองรับการบันทึก CharSequence ใด ๆ หากคุณต้องการบันทึกข้อความ แต่ยังสนับสนุนการบันทึก Object ใด ๆ ตามที่เป็นอยู่ Log4j 2 API รองรับการบันทึกอ็อบเจ็กต์ Message, Java 8 lambda expression และการบันทึกแบบไม่ใช้ขยะ (หลีกเลี่ยงการสร้างอาร์เรย์ vararg และหลีกเลี่ยงการสร้าง Strings เมื่อล็อกอ็อบเจ็กต์ CharSequence)
114 java  logging  log4j  slf4j  log4j2 

8
แปลงเวลาประทับของ dmesg เป็นรูปแบบวันที่ที่กำหนดเอง
ฉันกำลังพยายามทำความเข้าใจการประทับเวลา dmesg และพบว่าเป็นการยากที่จะแปลงสิ่งนั้นเพื่อเปลี่ยนเป็นวันที่จาวา / รูปแบบวันที่ที่กำหนดเอง ความช่วยเหลือใด ๆ ที่ชื่นชมมาก บันทึก dmesg ตัวอย่าง: [14614.647880] airo(eth1): link lost (missed beacons) ขอบคุณ!

6
ฉันควรใช้ ILogger, ILogger <T>, ILoggerFactory หรือ ILoggerProvider สำหรับห้องสมุดหรือไม่
สิ่งนี้อาจเกี่ยวข้องกับPass ILogger หรือ ILoggerFactory ไปยังตัวสร้างใน AspNet Core หรือไม่ อย่างไรก็ตามนี่เป็นเรื่องเกี่ยวกับการออกแบบไลบรารีโดยเฉพาะไม่เกี่ยวกับวิธีที่แอปพลิเคชันจริงที่ใช้ไลบรารีเหล่านั้นใช้การบันทึก ฉันกำลังเขียนไลบรารี. net Standard 2.0 ที่จะติดตั้งผ่าน Nuget และเพื่อให้ผู้ที่ใช้ไลบรารีนั้นได้รับข้อมูลการดีบักฉันขึ้นอยู่กับMicrosoft.Extensions.Logging.Abstractionsเพื่อให้สามารถฉีด Logger ที่เป็นมาตรฐานได้ อย่างไรก็ตามฉันเห็นหลายอินเทอร์เฟซและโค้ดตัวอย่างบนเว็บบางครั้งใช้ILoggerFactoryและสร้างตัวบันทึกใน ctor ของคลาส นอกจากนี้ยังILoggerProviderมีลักษณะที่ดูเหมือน Factory เวอร์ชันอ่านอย่างเดียว แต่การใช้งานอาจใช้หรือไม่ใช้ทั้งสองอินเทอร์เฟซดังนั้นฉันจึงต้องเลือก (โรงงานดูเหมือนธรรมดากว่าผู้ให้บริการ) รหัสบางตัวที่ฉันเคยเห็นใช้ILoggerอินเทอร์เฟซที่ไม่ใช่แบบทั่วไปและอาจแชร์อินสแตนซ์ของคนตัดไม้เดียวกันด้วยซ้ำและบางโค้ดก็ใช้ILogger&lt;T&gt;ctor และคาดว่าคอนเทนเนอร์ DI จะรองรับประเภททั่วไปแบบเปิดหรือการลงทะเบียนอย่างชัดเจนของแต่ละILogger&lt;T&gt;รูปแบบไลบรารีของฉัน ใช้ ตอนนี้ฉันคิดว่านั่นILogger&lt;T&gt;เป็นแนวทางที่ถูกต้องและอาจเป็น ctor ที่ไม่ได้ใช้อาร์กิวเมนต์นั้นและส่ง Null Logger แทน ด้วยวิธีนี้หากไม่จำเป็นต้องมีการบันทึกก็จะไม่มีการใช้ อย่างไรก็ตามตู้คอนเทนเนอร์ DI บางตัวเลือก ctor ที่ใหญ่ที่สุดจึงจะล้มเหลวอยู่ดี ฉันอยากรู้ว่าฉันควรจะทำอะไรที่นี่เพื่อสร้างความปวดหัวให้กับผู้ใช้น้อยที่สุดในขณะที่ยังให้การสนับสนุนการบันทึกที่เหมาะสมหากต้องการ

11
วิธีเปลี่ยนเส้นทางล็อกคอนเทนเนอร์ของนักเทียบท่าไปยังไฟล์เดียว
ฉันต้องการเปลี่ยนเส้นทางบันทึกทั้งหมดของคอนเทนเนอร์นักเทียบท่าของฉันไปยังไฟล์บันทึกเดียวเพื่อวิเคราะห์ ฉันเหนื่อย docker logs container &gt; /tmp/stdout.log 2&gt;/tmp/stderr.log แต่จะให้ล็อกในสองไฟล์ที่แตกต่างกัน ฉันพยายามแล้ว docker logs container &gt; /tmp/stdout.log แต่มันไม่ได้ผล
113 logging  docker 

9
ฉันจะให้ทั้ง STDOUT และ STDERR ไปที่เทอร์มินัลและล็อกไฟล์ได้อย่างไร
ฉันมีสคริปต์ที่จะเรียกใช้แบบโต้ตอบโดยผู้ใช้ที่ไม่ใช่ด้านเทคนิค สคริปต์เขียนอัพเดตสถานะเป็น STDOUT เพื่อให้ผู้ใช้มั่นใจได้ว่าสคริปต์กำลังทำงานตกลง ฉันต้องการให้ทั้ง STDOUT และ STDERR เปลี่ยนเส้นทางไปยังเทอร์มินัล (เพื่อให้ผู้ใช้เห็นว่าสคริปต์ทำงานและดูว่ามีปัญหาหรือไม่) ฉันยังต้องการให้สตรีมทั้งสองเปลี่ยนเส้นทางไปยังไฟล์บันทึก ฉันเคยเห็นวิธีแก้ปัญหามากมายบนเน็ต บางอย่างไม่ได้ผลและบางอย่างก็ซับซ้อนอย่างน่ากลัว ฉันได้พัฒนาโซลูชันที่ใช้งานได้แล้ว (ซึ่งฉันจะป้อนเป็นคำตอบ) แต่มันเป็นสิ่งที่น่ารังเกียจ โซลูชันที่สมบูรณ์แบบคือโค้ดบรรทัดเดียวที่สามารถรวมไว้ในส่วนเริ่มต้นของสคริปต์ใด ๆ ที่ส่งสตรีมทั้งสองไปยังเทอร์มินัลและล็อกไฟล์ แก้ไข:เปลี่ยนเส้นทาง STDERR เป็น STDOUT และส่งผลลัพธ์ไปยังงานที แต่ขึ้นอยู่กับผู้ใช้ที่จำเปลี่ยนเส้นทางและไปป์เอาต์พุต ฉันต้องการให้การบันทึกเป็นแบบอัตโนมัติ (ซึ่งเป็นเหตุผลว่าทำไมฉันจึงต้องการที่จะสามารถฝังโซลูชันลงในสคริปต์ได้)
113 bash  logging  shell 

6
แนบกับเอาต์พุตกระบวนการสำหรับการดู
ฉันจะ 'แนบ' คอนโซล / มุมมองเทอร์มินัลเข้ากับเอาต์พุตของแอปพลิเคชันได้อย่างไรเพื่อที่ฉันจะได้เห็นว่ามันกำลังพูดอะไร ฉันจะแยกออกจากเอาต์พุตของแอปพลิเคชันโดยไม่ฆ่าแอปพลิเคชันได้อย่างไร โดยปกติถ้าคุณเปิดแอปพลิเคชันที่ช่างพูดโดยใช้บรรทัดคำสั่งคุณจะเห็นผลลัพธ์ที่ยอดเยี่ยมทุกประเภท อย่างไรก็ตามสมมติว่าฉันมีการเขียนโปรแกรมช่างพูดโดยเฉพาะที่กำลังทำงานอยู่เช่น KINO และฉันต้องการดูผลลัพธ์ในช่วงเวลาใดเวลาหนึ่งโดยไม่ต้องรีสตาร์ทผ่านบรรทัดคำสั่ง ฉันไม่สามารถ; อย่างน้อยฉันก็ไม่รู้ว่าเป็นอย่างไร

7
เหตุใดข้อความบันทึก Level.FINE จึงไม่แสดง
JavaDocs สำหรับjava.util.logging.Levelรัฐ: ระดับจากมากไปหาน้อยคือ: SEVERE (ค่าสูงสุด) WARNING INFO CONFIG FINE FINER FINEST (ค่าต่ำสุด) ที่มา import java.util.logging.*; class LoggingLevelsBlunder { public static void main(String[] args) { Logger logger = Logger.getAnonymousLogger(); logger.setLevel(Level.FINER); System.out.println("Logging level is: " + logger.getLevel()); for (int ii=0; ii&lt;3; ii++) { logger.log(Level.FINE, ii + " " + (ii*ii)); logger.log(Level.INFO, ii …

1
เครื่องหมายใน Java Logging framework คืออะไรและมีเหตุผลอะไรที่ต้องใช้?
ครั้งแรกที่ฉันได้ยินเกี่ยวกับเครื่องหมายเมื่ออ่าน: http://slf4j.org/faq.html ฉันตรวจสอบวิธีการที่ใช้ได้สำหรับวัตถุLogger : http://www.slf4j.org/api/org/slf4j/Logger.html http://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Logger.html และพบอินเทอร์เฟซ: http://www.slf4j.org/api/org/slf4j/Marker.html http://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Marker.html ข้อมูลเชิงลึกเพิ่มเติมที่ฉันได้รับจาก: http://logback.qos.ch/manual/filters.html แต่ก็ยังสับสน ... โปรดทราบว่าฉันถามว่าทำไมไม่ใช่วิธีใช้ดังนั้นนี่จึงไม่ซ้ำกับ: แนวทางปฏิบัติที่ดีที่สุดสำหรับการใช้ Markers ใน SLF4J / Logback UPDATEดูเหมือนว่าเมื่อคุณใช้เครื่องหมายคุณต้องเขียนโค้ด Java ที่กำหนดเองแทนการกำหนดค่าในไฟล์ XMLหรือ. คุณสมบัติ ... อัปเดต 2จากhttp://logback.qos.ch/manual/appenders.html#OnMarkerEvaluator Marker notifyAdmin = MarkerFactory.getMarker("NOTIFY_ADMIN"); logger.error(notifyAdmin, "This is a serious an error requiring the admin's attention", new Exception("Just testing"));
110 java  logging  log4j  slf4j  logback 

9
วิธีใช้ Morgan Logger?
ฉันไม่สามารถเข้าสู่ระบบกับมอร์แกนได้ ไม่บันทึกข้อมูลลงในคอนโซล เอกสารไม่ได้บอกวิธีการใช้งาน ฉันต้องการดูว่าตัวแปรคืออะไร นี่คือรหัสจากresponse.jsไฟล์ของเฟรมเวิร์ก expressjs: var logger = require("morgan"); res.render = function(view, options, fn){ options = options || {}; var self = this; var req = this.req; var app = req.app; // support callback function as second arg if ('function' == typeof options) { fn = options, options = …
109 node.js  logging  express 

3
Python Logging (ชื่อฟังก์ชันชื่อไฟล์หมายเลขบรรทัด) โดยใช้ไฟล์เดียว
ฉันพยายามเรียนรู้วิธีการทำงานของแอปพลิเคชัน และสำหรับสิ่งนี้ฉันกำลังแทรกคำสั่งดีบักเป็นบรรทัดแรกของเนื้อหาของแต่ละฟังก์ชันโดยมีเป้าหมายในการบันทึกชื่อของฟังก์ชันตลอดจนหมายเลขบรรทัด (ภายในรหัส) ที่ฉันส่งข้อความไปยังเอาต์พุตบันทึก ในที่สุดเนื่องจากแอปพลิเคชันนี้ประกอบด้วยไฟล์จำนวนมากฉันจึงต้องการสร้างไฟล์บันทึกไฟล์เดียวเพื่อให้เข้าใจขั้นตอนการควบคุมของแอปพลิเคชันได้ดีขึ้น นี่คือสิ่งที่ฉันรู้: สำหรับการรับชื่อฟังก์ชันฉันสามารถใช้ได้function_name.__name__แต่ฉันไม่ต้องการใช้ function_name (เพื่อให้ฉันสามารถคัดลอกและวางข้อมูลทั่วไปLog.info("Message")ในเนื้อความของฟังก์ชันทั้งหมดได้อย่างรวดเร็ว) ฉันรู้ว่าสิ่งนี้สามารถทำได้ใน C โดยใช้__func__มาโคร แต่ฉันไม่แน่ใจเกี่ยวกับ python สำหรับการรับชื่อไฟล์และหมายเลขบรรทัดผมได้เห็นว่า (และผมเชื่อว่า) ใบสมัครของฉันคือการใช้ Python locals()ฟังก์ชั่น แต่ในไวยากรณ์ว่าผมไม่ได้ตระหนักถึงความสมบูรณ์เช่น: options = "LOG.debug('%(flag)s : %(flag_get)s' % locals())และฉันพยายามมันใช้เหมือนซึ่งเป็นผู้ผลิตบางอย่างเช่นLOG.info("My message %s" % locals()) {'self': &lt;__main__.Class_name object at 0x22f8cd0&gt;}โปรดป้อนข้อมูลใด ๆ เกี่ยวกับเรื่องนี้ ฉันรู้วิธีใช้การบันทึกและเพิ่มตัวจัดการเพื่อเข้าสู่ระบบไฟล์ แต่ฉันไม่แน่ใจว่าไฟล์เดียวสามารถใช้บันทึกข้อความบันทึกทั้งหมดตามลำดับการเรียกฟังก์ชันในโปรเจ็กต์ได้อย่างถูกต้องหรือไม่ ฉันขอขอบคุณอย่างยิ่งสำหรับความช่วยเหลือใด ๆ ขอบคุณ!
109 python  logging 


11
วิธีการเขียนบันทึกลงไฟล์
ฉันกำลังพยายามเขียนลงในล็อกไฟล์ด้วย Go ฉันได้ลองหลายวิธีซึ่งทั้งหมดล้มเหลว นี่คือสิ่งที่ฉันได้ลอง: func TestLogging(t *testing.T) { if !FileExists("logfile") { CreateFile("logfile") } f, err := os.Open("logfile") if err != nil { t.Fatalf("error: %v", err) } // attempt #1 log.SetOutput(io.MultiWriter(os.Stderr, f)) log.Println("hello, logfile") // attempt #2 log.SetOutput(io.Writer(f)) log.Println("hello, logfile") // attempt #3 log.SetOutput(f) log.Println("hello, logfile") } func FileExists(name string) bool …
108 go  logging 

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