Twiggy

ภาพหน้าจอของซอฟแวร์:
Twiggy
รายละเอียดซอฟแวร์:
รุ่น: 0.4.4
วันที่อัพโหลด: 11 May 15
ผู้พัฒนา: Peter Fein
การอนุญาต: ฟรี
ความนิยม: 6

Rating: nan/5 (Total Votes: 0)

ทวิกกี้เป็นโครงการขั้นต้นในการสร้างแพคเกจการเข้าสู่ระบบมากขึ้น Pythonic
การใช้งาน:
ทำให้การทำงานของจอแสดงผล:
>>> นำเข้า SYS; sys.stderr = sys.stdout
ติดตั้งง่าย
ใน main.py คุณ:
>>> นำเข้าทวิกกี้
>>> twiggy.quick_setup ()
ข้อความเข้าสู่ระบบ
>>> นำเข้าจากทวิกกี้ *
อินเตอร์เฟซหลักคือการบันทึกมายากล:
>>> เข้าสู่ระบบ #doctest + จุดไข่ปลา

มันทำงานออกจากกล่องโดยใช้ระดับมาตรฐาน:
>>> log.debug ('คุณอาจจะไม่สนใจ)
DEBUG: คุณอาจไม่สนใจ
>>> log.error (OMFG! กางเกงไฟไหม้!)
ข้อผิดพลาด: OMFG! กางเกงไฟไหม้!
มันสนับสนุนความหลากหลายของรูปแบบสตริง, ผิดนัดกับรูปแบบใหม่:
>>> log.info ('ฉันสวม {0} ของฉัน {ที่}', 'กางเกง' ที่ 'ขา' =)
รายละเอียด: ฉันสวมใส่กางเกงในขาของฉัน
แบบเก่าทำงานได้ดีแม้ว่า:
>>> log.options (style = 'ร้อยละ) ข้อมูล. (ผมชอบ% s' "จักรยาน")
รายละเอียด: ผมชอบจักรยาน
ในฐานะที่เป็นแม่แบบที่ทำ:
>>> log.options (style = 'ดอลล่า') ข้อมูล. ('$ สิ่งที่ฆ่า' สิ่งที่ = 'Cars')
ข้อมูล: รถยนต์ฆ่า
คุณสามารถตั้งชื่อตัดไม้ของคุณ:
>>> mylog = log.name (อัลเฟร)
>>> mylog.debug (สวัสดี)
DEBUG: alfredo: สวัสดี
แต่ชื่อที่มีความสัมพันธ์กับวัตถุที่ไม่มี มันเป็นเพียงสำหรับการใช้งานของมนุษย์
>>> mylog เป็น log.name (อัลเฟร)
เท็จ
ข้อความเปล่ง
ตัวส่งสัญญาณเป็นคู่หลวม:
>>> twiggy.emitters #doctest + จุดไข่ปลา
{'*' }
คุณสามารถตั้งค่า min_level ในอิมิเตอร์:
>>> twiggy.emitters ['*']. min_level = twiggy.Levels.INFO
>>> log.debug ("ช่วยเหลือช่วยฉันถูกระงับ")
>>> log.info ("ฉันไม่ตายค่อนข้างยัง")
รายละเอียด: ฉันยังไม่ตายค่อนข้างยัง
คุณสามารถกรอง regexes หรือฟังก์ชั่นโดยพลการ:
>>> twiggy.emitters ['*']. กรอง = ". กางเกง *. *"
>>> log.info ("มีของฉัน {0} บน", "กางเกง")
รายละเอียด: มีกางเกงของฉันใน
>>> log.info ("มีของฉัน {0} บน", "เสื้อ")
ลองตั้งค่าทั้งหมดที่:
>>> twiggy.emitters ['*']. กรอง = True
>>> twiggy.emitters ['*']. min_level = twiggy.Levels.DEBUG
การส่งออกที่ดีขึ้น
ถูกระงับการขึ้นบรรทัดใหม่โดยค่าเริ่มต้น ที่สามารถปิดได้ต่อข้อความ:
>>> log.info ('ผู้ใช้ ninput nannoys NUS)
รายละเอียด: ผู้ใช้ ninput nannoys NUS
>>> log.options (suppress_newlines = เท็จ) .info ('เรา ndeal ')
รายละเอียด: เรา
การจัดการ
ยกเว้นจะมีคำนำหน้า นอกจากนี้ยังสามารถส่งผ่าน exc_info ใช้ ' n' เป็นคำนำหน้าจะพับเป็นเส้นเดียว:
>>> ลอง:
... 1/0
... ยกเว้น:
... log.trace ('ข้อผิดพลาด') เตือน ('โอ้ noes) #doctest:. + จุดไข่ปลา
คำเตือน: โอ้ noes
ติดตาม Traceback (โทรล่าสุดที่ผ่านมา):
ไฟล์ TRACE "" สาย 2 ใน
TRACE 1/0
ติดตาม ZeroDivisionError: ส่วนจำนวนเต็มหรือโมดูโลด้วยศูนย์
วิธี Chaining
ผมชอบสไตล์นี้มากถูกล่ามโซ่
>>> log.name (Benito) ข้อมูล. (สวัสดี)
ข้อมูล: benito: hi there
มันทำให้การเข้าสู่ระบบที่มีโครงสร้างง่าย:
>>> log.fields (เส้นทาง = 42) .info ('ไปเดินเล่น)
ข้อมูล: เส้นทาง = 42: ไปเดินเล่น
ตัดสั้น ที่ดีสำหรับการรวบรวมสถิติรันไทม์
>>> log.struct (เส้นทาง = 42, โลมา = 'ขอบคุณ')
ข้อมูล: โลมา = ขอบคุณ: เส้นทาง = 42:
บางส่วนมีผลผูกพันจะมีประโยชน์สำหรับ webapps:
>>> per_request_log = log.fields (request_id = '12345')
>>> per_request_log.fields (แถว = 100 ผู้ใช้ = 'ตรงไปตรงมา') ข้อมูล. (ฐานข้อมูล frobnicating)
ข้อมูล: request_id = 12345: แถว = 100 ใช้ = ตรงไปตรงมา: ฐานข้อมูล frobnicating
>>> per_request_log.fields (ไบต์ = 5678) .info ('ส่งหน้ามากกว่าหลอด)
ข้อมูล: ไบต์ = 5678: request_id = 12345: ส่งหน้ามากกว่าหลอด
ถูกล่ามโซ่สไตล์น่ากลัว:
>>> log.name (donjuan). สาขา (กางเกง = 'เซ็กซี่') ข้อมูล. ("สวัสดี {} ที่ต้องการสิ่งที่ {}?" ที่ = 'ผู้หญิง' สิ่งที่ = 'เต้น')
ข้อมูล: donjuan: กางเกง = เซ็กซี่: สวัสดีผู้หญิงต้องการที่จะเต้น?
แบบไดนามิก!
ฟังก์ชั่นใด ๆ ใน args / สาขาที่เรียกว่าและความคุ้มค่า substitued:
>>> นำเข้าระบบปฏิบัติการ
>>> จากการนำเข้า twiggy.lib thread_name
>>> thread_name ()
'MainThread'
>>> log.fields (pid = os.getpid) .info ("ฉันในหัวข้อ {0}" thread_name) #doctest + จุดไข่ปลา
ข้อมูล: pid = 1076: ฉัน MainThread กระทู้
ซึ่งจะเป็นประโยชน์กับการตัดไม้บางส่วนที่ถูกผูกไว้ซึ่งปล่อยให้เป็นเราทำบางสิ่งที่เย็น:
>>> ระดับ ThreadTracker (วัตถุ):
... def __init __ (ตนเอง obj):
... ตัวเอง .__ obj = obj
# ... คนตัดไม้ที่ถูกผูกไว้บางส่วน
... ตัวเองเข้าสู่ระบบ .__ = log.name ("ติดตาม") สาขา. (obj_id = รหัส (obj), ด้าย = thread_name)
... ตัวเอง .__ log.debug ("เริ่มต้นการติดตาม")
... def __getattr __ (ตนเอง attr):
... ตัวเอง .__ log.debug ("เข้าถึง {0}" attr)
... getattr ผลตอบแทน (ตัวเอง .__ obj, attr)
...
>>> ระดับพวง (วัตถุ):
... ผ่าน
...
>>> foo = พวง ()
>>> foo.bar = 42
>>> ติดตาม = ThreadTracker (foo)
DEBUG: ติดตาม: obj_id = 14063980: กระทู้ = MainThread: เริ่มต้นการติดตาม
>>> tracked.bar
DEBUG: ติดตาม: obj_id = 14063980: กระทู้ = MainThread: บาร์เข้าถึงได้
42
>>> เกลียวนำเข้า
>>> t = threading.Thread (แลมบ์ดา = เป้าหมาย: tracked.bar * 2 ชื่อ = "TheDoubler")
>>> t.start ()
DEBUG: ติดตาม: obj_id = 14063980: กระทู้ = TheDoubler: บาร์เข้าถึงได้
ถ้าคุณอยากที่จะเข้าสู่ระบบ callable, repr () หรือห่อไว้ในแลมบ์ดา
เพิ่มประสิทธิภาพ
การเพิ่มประสิทธิภาพ, min_level สามารถตัดไม้ตั้งอยู่บน:
>>> mylog.min_level = twiggy.Levels.INFO
>>> mylog.info ("คุณเห็นนี้")
ข้อมูล: alfredo: คุณเห็นนี้
>>> mylog.debug ("นี้เป็นที่ซ่อนอยู่")
พวกเขายังใช้ตัวกรองที่ทำงานบน format_spec กรณีที่ใช้จะมีประสิทธิภาพปิดข้อความที่ระบุในห้องสมุดที่จะทำอะไรโง่:
>>> mylog.filter แลมบ์ดา = s: "แง่" ไม่ได้อยู่ใน s
>>> mylog.info ("เริ่มต้นความบ้า")
ข้อมูล: alfredo: เริ่มต้นความบ้า
>>> สำหรับฉันใน xrange (3): # ค่าขนาดใหญ่ 3
... mylog.info ("ผมเรียกแง่!")
>>> mylog.info ("ยุติความบ้า")
ข้อมูล: alfredo: End บ้า

ต้องการ

  • งูใหญ่

ซอฟแวร์อื่น ๆ ของนักพัฒนา Peter Fein

Twiggy
Twiggy

12 Apr 15

Petapass
Petapass

11 May 15

ความคิดเห็นที่ Twiggy

ความคิดเห็นที่ไม่พบ
เพิ่มความคิดเห็น
เปิดภาพ!