Twiggy

Phần mềm chụp màn hình:
Twiggy
Các chi tiết về phần mềm:
Phiên bản: 0.4.4
Ngày tải lên: 11 May 15
Nhà phát triển: Peter Fein
Giấy phép: Miễn phí
Phổ biến: 1

Rating: nan/5 (Total Votes: 0)

Twiggy là một dự án trong giai đoạn đầu xây dựng một gói logging Pythonic hơn.
Cách sử dụng:
Làm cho công việc hiển thị:
>>> Sys nhập khẩu; sys.stderr = sys.stdout
Thiết lập là đơn giản
Trong main.py của bạn:
>>> Nhập khẩu có nhiều cành nhỏ
>>> Twiggy.quick_setup ()
Logging Messages
>>> Từ nhập khẩu có nhiều cành nhỏ *
Giao diện chính là nhật ký ma thuật:
>>> Đăng nhập #doctest: + dấu chấm lửng

Nó hoạt động ra khỏi hộp, sử dụng các mức tiêu chuẩn:
>>> Log.debug ("Bạn có thể không quan tâm ')
DEBUG: Bạn có thể không quan tâm
>>> Log.error ('OMG! Pants trên lửa! ")
ERROR: OMG! Quần trên lửa!
Nó hỗ trợ một loạt các định dạng chuỗi, mặc định cho phong cách mới:
>>> Log.info ('Tôi mặc {0} vào tôi {} nơi', 'quần', nơi = 'chân')
INFO: Tôi mặc quần trên đôi chân của tôi
Old phong cách hoạt động tốt mặc dù:
>>> Log.options (style = "phần trăm") thông tin. ("Tôi thích% s '," xe đạp ")
INFO: Tôi thích xe đạp
Khi làm mẫu:
>>> Log.options (style = 'đô la') thông tin. ('$ Gì kill', những gì = 'Xe ôtô')
INFO: Xe giết
Bạn có thể đặt tên logger của bạn:
>>> Mylog = log.name ('Alfredo')
>>> Mylog.debug ('hello')
DEBUG: Alfredo: hello
Nhưng cái tên không liên quan đến các đối tượng; nó chỉ dùng cho người:
>>> Mylog là log.name ('Alfredo')
Sai
Xả Tin nhắn
Phát thải được lỏng lẻo:
>>> Twiggy.emitters #doctest: + dấu chấm lửng
{'*': }
Bạn có thể thiết lập một min_level trên phát sáng:
>>> Twiggy.emitters ['*']. Min_level = twiggy.Levels.INFO
>>> Log.debug ("Help, giúp đỡ tôi đang bị đàn áp")
>>> Log.info ("Tôi không hoàn toàn chết chưa")
INFO: Tôi không khá chết chưa
Bạn có thể lọc trên regexes, hoặc với chức năng tùy ý:
>>> Twiggy.emitters ['*'] lọc. = ". * Quần. *"
>>> Log.info ("Got tôi {0} vào", "quần")
INFO: Got quần của tôi trên
>>> Log.info ("Got tôi {0} vào", "áo")
Hãy thiết lập lại tất cả rằng:
>>> Twiggy.emitters ['*'] = True lọc.
>>> Twiggy.emitters ['*']. Min_level = twiggy.Levels.DEBUG
đầu ra tốt hơn
Dòng mới được dập tắt theo mặc định; mà có thể được tắt cho mỗi thông điệp:
>>> Log.info (mã người dùng ninput nannoys nus ')
INFO: user ninput nannoys nus
>>> Log.options (suppress_newlines = False) .info ('chúng tôi ndeal')
INFO: chúng tôi
nhiều
Trường hợp ngoại lệ được bắt đầu. Cũng có thể vượt qua exc_info. Sử dụng ' n' như là một tiền tố để gấp thành một dòng duy nhất:
>>> Thử:
... 1/0
... Ngoại trừ:
... Log.trace ('lỗi') cảnh báo ('oh Choáng') #doctest:. + Dấu chấm lửng
CẢNH BÁO: oh Choáng
TRACE Traceback (hầu hết cuộc gọi gần đây nhất):
TRACE File "", dòng 2, trong
TRACE 1/0
TRACE ZeroDivisionError: phân chia số nguyên modulo hoặc bằng zero
Phương pháp Chaining
Tôi thích phong cách này bị xích rất nhiều.
>>> Log.name ('benito'). Info ('hi có')
INFO: benito: hi có
Nó làm cho khai thác gỗ có cấu trúc dễ dàng:
>>> Log.fields (đường dẫn = 42) .info ('Đi dạo')
INFO: đường dẫn = 42: Đi dạo
Cắt ngắn. Tuyệt vời cho các số liệu thống kê thời gian chạy thu thập.
>>> Log.struct (đường dẫn = 42, cá heo = 'biết ơn')
INFO: cá heo = cảm ơn: đường dẫn = 42:
Một phần ràng buộc có thể có ích cho các ứng dụng web:
>>> Per_request_log = log.fields (request_id = '12345')
>>> Per_request_log.fields (rows = 100, user = 'thẳng thắn') thông tin. ('Frobnicating cơ sở dữ liệu')
INFO: request_id = 12345: rows = 100: hướng dẫn = thẳng thắn: cơ sở dữ liệu frobnicating
>>> Per_request_log.fields (byte = 5678) .info ('gửi trang qua ống')
INFO: byte = 5678: request_id = 12345: gửi trang qua ống
Phong cách xích là tuyệt vời:
>>> ('Sexy' quần =) Thông tin các trường log.name ('donjuan').. ("Hello, {} người muốn {} những gì?", Người = 'phụ nữ', những gì = 'khiêu vũ')
INFO: donjuan: quần = sexy: hello, phụ nữ muốn nhảy không?
Dynamic!
Bất kỳ chức năng trong args / lĩnh vực được gọi và giá trị thay thế bởi:
>>> Os nhập khẩu
>>> Từ twiggy.lib nhập khẩu thread_name
>>> Thread_name ()
'MainThread'
>>> Log.fields (pid = os.getpid) .info ("Tôi trong chủ đề {0}", thread_name) #doctest: + dấu chấm lửng
INFO: pid = 1076: Tôi trong chủ đề MainThread
Điều này có thể hữu ích với những người khai thác gỗ một phần ràng buộc, mà hãy cho chúng tôi làm một số công cụ mát:
>>> Lớp ThreadTracker (object):
... Def __init __ (self, obj):
... Tự .__ obj = obj
... # Một logger ràng buộc một phần
... Tự .__ đăng nhập = log.name ("tracker"). Lĩnh vực (obj_id = id (obj), thread = thread_name)
... Tự .__ log.debug ("bắt đầu theo dõi")
... Def __getattr __ (self, attr):
... Tự .__ log.debug ("truy cập {0}", attr)
... Trở lại getattr (self .__ obj, attr)
...
>>> Lớp Bunch (object):
... Vượt qua
...
>>> Foo = Bunch ()
>>> Foo.bar = 42
>>> Theo dõi = ThreadTracker (foo)
DEBUG: tracker: obj_id = 14063980: Sợi = MainThread: bắt đầu theo dõi
>>> Tracked.bar
DEBUG: tracker: obj_id = 14063980: Sợi = MainThread: thanh truy cập
42
>>> Nhập khẩu luồng
>>> T = threading.Thread (target = lambda: tracked.bar * 2, name = "TheDoubler")
>>> T.start ()
DEBUG: tracker: obj_id = 14063980: Sợi = TheDoubler: thanh truy cập
Nếu bạn thực sự muốn đăng nhập một callable, repr () nó hoặc bọc nó trong lambda.
Tối ưu
Là một tối ưu hóa, một min_level thể được đặt trên logger:
>>> Mylog.min_level = twiggy.Levels.INFO
>>> Mylog.info ("Bạn thấy điều này")
INFO: Alfredo: Bạn thấy điều này
>>> Mylog.debug ("Đây là ẩn")
Họ cũng có một bộ lọc mà hoạt động trên format_spec. Các trường hợp sử dụng được hiệu quả tắt thông điệp cụ thể trong một thư viện mà là làm điều gì đó ngu ngốc:
>>> Mylog.filter = lambda s: "tai quái" không s
>>> Mylog.info ("Bắt đầu từ dại")
INFO: Alfredo: Bắt đầu từ sự ngớ ngẩn
>>> For i in xrange (3): # cho giá trị lớn của 3
... Mylog.info ("Tôi gọi tai quái!")
>>> Mylog.info ("End dại")
INFO: Alfredo: End dại

Yêu cầu :

  • Python

Phần mềm khác của nhà phát triển Peter Fein

Petapass
Petapass

11 May 15

Twiggy
Twiggy

12 Apr 15

Ý kiến ​​để Twiggy

Bình luận không
Nhập bình luận
Bật hình ảnh!