Cách chuyển đổi chuỗi thành tên mô-đun trong python

Trang này chứa thông tin tham chiếu API. For tutorial information and discussion of more advanced topics, see

  • Basic Tutorial

  • Advanced Tutorial

  • Logging Cookbook

This module defines functions and classes which implement a flexible event logging system for applications and libraries

The key benefit of having the logging API provided by a standard library module is that all Python modules can participate in logging, so your application log can include your own messages integrated with messages from third-party modules

The simplest example

>>> import logging
>>> logging.warning['Watch out!']
WARNING:root:Watch out!

The module provides a lot of functionality and flexibility. If you are unfamiliar with logging, the best way to get to grips with it is to view the tutorials [see the links above and on the right]

The basic classes defined by the module, together with their functions, are listed below

  • Loggers expose the interface that application code directly uses

  • Handlers send the log records [created by loggers] to the appropriate destination

  • Filters provide a finer grained facility for determining which log records to output

  • Formatters specify the layout of log records in the final output

Logger Objects¶

Loggers have the following attributes and methods. Note that Loggers should NEVER be instantiated directly, but always through the module-level function

Stack [most recent call last]:
0. Multiple calls to
Stack [most recent call last]:
1 with the same name will always return a reference to the same Logger object

The

Stack [most recent call last]:
2 is potentially a period-separated hierarchical value, like
Stack [most recent call last]:
3 [though it could also be just plain
Stack [most recent call last]:
4, for example]. Loggers that are further down in the hierarchical list are children of loggers higher up in the list. For example, given a logger with a name of
Stack [most recent call last]:
4, loggers with names of
Stack [most recent call last]:
6,
Stack [most recent call last]:
3, and
Stack [most recent call last]:
8 are all descendants of
Stack [most recent call last]:
4. The logger name hierarchy is analogous to the Python package hierarchy, and identical to it if you organise your loggers on a per-module basis using the recommended construction
Stack [most recent call last]:
10. That’s because in a module,
Stack [most recent call last]:
11 is the module’s name in the Python package namespace

class logging. Loggerpropagate

If this attribute evaluates to true, events logged to this logger will be passed to the handlers of higher level [ancestor] loggers, in addition to any handlers attached to this logger. Messages are passed directly to the ancestor loggers’ handlers - neither the level nor filters of the ancestor loggers in question are considered

If this evaluates to false, logging messages are not passed to the handlers of ancestor loggers

Spelling it out with an example. If the propagate attribute of the logger named

Stack [most recent call last]:
12 evaluates to true, any event logged to
Stack [most recent call last]:
12 via a method call such as
Stack [most recent call last]:
14 will [subject to passing that logger’s level and filter settings] be passed in turn to any handlers attached to loggers named
Stack [most recent call last]:
15,
Stack [most recent call last]:
16 and the root logger, after first being passed to any handlers attached to
Stack [most recent call last]:
12. If any logger in the chain
Stack [most recent call last]:
12,
Stack [most recent call last]:
15,
Stack [most recent call last]:
16 has its
Stack [most recent call last]:
21 attribute set to false, then that is the last logger whose handlers are offered the event to handle, and propagation stops at that point

The constructor sets this attribute to

Stack [most recent call last]:
22

Note

If you attach a handler to a logger and one or more of its ancestors, it may emit the same record multiple times. In general, you should not need to attach a handler to more than one logger - if you just attach it to the appropriate logger which is highest in the logger hierarchy, then it will see all events logged by all descendant loggers, provided that their propagate setting is left set to

Stack [most recent call last]:
22. A common scenario is to attach handlers only to the root logger, and to let propagation take care of the rest

setLevel[level]

Sets the threshold for this logger to level. Logging messages which are less severe than level will be ignored; logging messages which have severity level or higher will be emitted by whichever handler or handlers service this logger, unless a handler’s level has been set to a higher severity level than level

When a logger is created, the level is set to

Stack [most recent call last]:
24 [which causes all messages to be processed when the logger is the root logger, or delegation to the parent when the logger is a non-root logger]. Note that the root logger is created with level
Stack [most recent call last]:
25

The term ‘delegation to the parent’ means that if a logger has a level of NOTSET, its chain of ancestor loggers is traversed until either an ancestor with a level other than NOTSET is found, or the root is reached

If an ancestor is found with a level other than NOTSET, then that ancestor’s level is treated as the effective level of the logger where the ancestor search began, and is used to determine how a logging event is handled

If the root is reached, and it has a level of NOTSET, then all messages will be processed. Otherwise, the root’s level will be used as the effective level

See Logging Levels for a list of levels.

Changed in version 3. 2. The level parameter now accepts a string representation of the level such as ‘INFO’ as an alternative to the integer constants such as

Stack [most recent call last]:
26. Note, however, that levels are internally stored as integers, and methods such as e. g.
Stack [most recent call last]:
27 and
Stack [most recent call last]:
28 will return/expect to be passed integers.

isEnabledFor[level]

Indicates if a message of severity level would be processed by this logger. This method checks first the module-level level set by

Stack [most recent call last]:
29 and then the logger’s effective level as determined by
Stack [most recent call last]:
27

getEffectiveLevel[]

Indicates the effective level for this logger. If a value other than

Stack [most recent call last]:
24 has been set using
Stack [most recent call last]:
32, it is returned. Mặt khác, hệ thống phân cấp được duyệt về phía gốc cho đến khi tìm thấy một giá trị khác với
Stack [most recent call last]:
24 và giá trị đó được trả về. The value returned is an integer, typically one of
Stack [most recent call last]:
34,
Stack [most recent call last]:
35 etc

getChild[hậu tố]

Returns a logger which is a descendant to this logger, as determined by the suffix. Thus,

Stack [most recent call last]:
36 would return the same logger as would be returned by
Stack [most recent call last]:
37. Đây là một phương pháp tiện lợi, hữu ích khi bộ ghi gốc được đặt tên bằng e. g.
Stack [most recent call last]:
11 chứ không phải là một chuỗi ký tự

Mới trong phiên bản 3. 2

gỡ lỗi[tin nhắn , *args, **kwargs]

Ghi nhật ký một thông báo có cấp độ

Stack [most recent call last]:
39 trên bộ ghi nhật ký này. Thông điệp là chuỗi định dạng thông báo và các đối số là các đối số được hợp nhất vào thông báo bằng cách sử dụng toán tử định dạng chuỗi. [Lưu ý rằng điều này có nghĩa là bạn có thể sử dụng các từ khóa trong chuỗi định dạng, cùng với một đối số từ điển đơn lẻ. ] Không có thao tác định dạng % nào được thực hiện trên thông báo khi không có đối số nào được cung cấp

Có bốn đối số từ khóa trong kwargs được kiểm tra. exc_info, stack_info, stacklevel and extra

If exc_info does not evaluate as false, it causes exception information to be added to the logging message. If an exception tuple [in the format returned by

Stack [most recent call last]:
10] or an exception instance is provided, it is used; otherwise,
Stack [most recent call last]:
10 is called to get the exception information

The second optional keyword argument is stack_info, which defaults to

Stack [most recent call last]:
12. If true, stack information is added to the logging message, including the actual logging call. Note that this is not the same stack information as that displayed through specifying exc_info. The former is stack frames from the bottom of the stack up to the logging call in the current thread, whereas the latter is information about stack frames which have been unwound, following an exception, while searching for exception handlers

You can specify stack_info independently of exc_info, e. g. to just show how you got to a certain point in your code, even when no exceptions were raised. The stack frames are printed following a header line which says

Stack [most recent call last]:

This mimics the

Stack [most recent call last]:
13 which is used when displaying exception frames

The third optional keyword argument is stacklevel, which defaults to

Stack [most recent call last]:
14. If greater than 1, the corresponding number of stack frames are skipped when computing the line number and function name set in the
Stack [most recent call last]:
15 created for the logging event. This can be used in logging helpers so that the function name, filename and line number recorded are not the information for the helper function/method, but rather its caller. The name of this parameter mirrors the equivalent one in the
Stack [most recent call last]:
16 module

The fourth keyword argument is extra which can be used to pass a dictionary which is used to populate the __dict__ of the

Stack [most recent call last]:
15 created for the logging event with user-defined attributes. These custom attributes can then be used as you like. For example, they could be incorporated into logged messages. For example

Stack [most recent call last]:
1

would print something like

Stack [most recent call last]:
2

The keys in the dictionary passed in extra should not clash with the keys used by the logging system. [See the section on LogRecord attributes for more information on which keys are used by the logging system. ]

If you choose to use these attributes in logged messages, you need to exercise some care. In the above example, for instance, the

Stack [most recent call last]:
18 has been set up with a format string which expects ‘clientip’ and ‘user’ in the attribute dictionary of the
Stack [most recent call last]:
15. If these are missing, the message will not be logged because a string formatting exception will occur. So in this case, you always need to pass the extra dictionary with these keys

While this might be annoying, this feature is intended for use in specialized circumstances, such as multi-threaded servers where the same code executes in many contexts, and interesting conditions which arise are dependent on this context [such as remote client IP address and authenticated user name, in the above example]. In such circumstances, it is likely that specialized

Stack [most recent call last]:
18s would be used with particular
Stack [most recent call last]:
1s

If no handler is attached to this logger [or any of its ancestors, taking into account the relevant

Stack [most recent call last]:
2 attributes], the message will be sent to the handler set on
Stack [most recent call last]:
3

Changed in version 3. 2. The stack_info parameter was added.

Changed in version 3. 5. The exc_info parameter can now accept exception instances.

Changed in version 3. 8. The stacklevel parameter was added.

info[msg , *args , **kwargs]

Logs a message with level

Stack [most recent call last]:
26 on this logger. The arguments are interpreted as for
Stack [most recent call last]:
5

warning[msg , *args , **kwargs]

Logs a message with level

Stack [most recent call last]:
25 on this logger. The arguments are interpreted as for
Stack [most recent call last]:
5

Note

There is an obsolete method

Stack [most recent call last]:
8 which is functionally identical to
Stack [most recent call last]:
9. As
Stack [most recent call last]:
8 is deprecated, please do not use it - use
Stack [most recent call last]:
9 instead

error[msg , *args , **kwargs]

Logs a message with level

Stack [most recent call last]:
62 on this logger. The arguments are interpreted as for
Stack [most recent call last]:
5

critical[msg , *args , **kwargs]

Logs a message with level

Stack [most recent call last]:
64 on this logger. The arguments are interpreted as for
Stack [most recent call last]:
5

log[level , msg , *args , **kwargs]

Logs a message with integer level level on this logger. The other arguments are interpreted as for

Stack [most recent call last]:
5

exception[msg , *args , **kwargs]

Logs a message with level

Stack [most recent call last]:
62 on this logger. The arguments are interpreted as for
Stack [most recent call last]:
5. Exception info is added to the logging message. This method should only be called from an exception handler

addFilter[filter]

Adds the specified filter filter to this logger

removeFilter[filter]

Removes the specified filter filter from this logger

filter[record]

Apply this logger’s filters to the record and return

Stack [most recent call last]:
22 if the record is to be processed. The filters are consulted in turn, until one of them returns a false value. If none of them return a false value, the record will be processed [passed to handlers]. If one returns a false value, no further processing of the record occurs

addHandler[hdlr]

Adds the specified handler hdlr to this logger

removeHandler[hdlr]

Removes the specified handler hdlr from this logger

findCaller[stack_info=False , stacklevel=1]

Finds the caller’s source filename and line number. Returns the filename, line number, function name and stack information as a 4-element tuple. The stack information is returned as

Stack [most recent call last]:
20 unless stack_info is
Stack [most recent call last]:
22

The stacklevel parameter is passed from code calling the

Stack [most recent call last]:
5 and other APIs. If greater than 1, the excess is used to skip stack frames before determining the values to be returned. This will generally be useful when calling logging APIs from helper/wrapper code, so that the information in the event log refers not to the helper/wrapper code, but to the code that calls it

handle[record]

Handles a record by passing it to all handlers associated with this logger and its ancestors [until a false value of propagate is found]. This method is used for unpickled records received from a socket, as well as those created locally. Logger-level filtering is applied using

Stack [most recent call last]:
23

makeRecord[name , level , fn , lno , msg , args , exc_info , func=None , extra=None , sinfo=None]

This is a factory method which can be overridden in subclasses to create specialized

Stack [most recent call last]:
15 instances

hasHandlers[]

Checks to see if this logger has any handlers configured. This is done by looking for handlers in this logger and its parents in the logger hierarchy. Trả về

Stack [most recent call last]:
22 nếu tìm thấy trình xử lý, nếu không thì
Stack [most recent call last]:
12. The method stops searching up the hierarchy whenever a logger with the ‘propagate’ attribute set to false is found - that will be the last logger which is checked for the existence of handlers

Mới trong phiên bản 3. 2

Changed in version 3. 7. Loggers can now be pickled and unpickled.

Logging Levels¶

The numeric values of logging levels are given in the following table. Đây chủ yếu là mối quan tâm nếu bạn muốn xác định cấp độ của riêng mình và cần chúng có giá trị cụ thể so với cấp độ được xác định trước. If you define a level with the same numeric value, it overwrites the predefined value; the predefined name is lost

Mức độ

Giá trị số

Stack [most recent call last]:
64

50

Stack [most recent call last]:
62

40

Stack [most recent call last]:
25

30

Stack [most recent call last]:
26

20

Stack [most recent call last]:
39

10

Stack [most recent call last]:
24

0

Xử lý đối tượng¶

Trình xử lý có các thuộc tính và phương thức sau. Lưu ý rằng

Stack [most recent call last]:
1 không bao giờ được khởi tạo trực tiếp; . Tuy nhiên, phương thức
Stack [most recent call last]:
724 trong các lớp con cần gọi
Stack [most recent call last]:
725

lớp ghi nhật ký. Trình xử lý__init__[cấp=NOTSET]

Khởi tạo phiên bản

Stack [most recent call last]:
1 bằng cách đặt cấp độ của nó, đặt danh sách các bộ lọc thành danh sách trống và tạo khóa [sử dụng
Stack [most recent call last]:
727] để tuần tự hóa quyền truy cập vào cơ chế I/O

createLock[]

Khởi tạo khóa luồng có thể được sử dụng để tuần tự hóa quyền truy cập vào chức năng I/O cơ bản có thể không an toàn cho luồng

có được[]

Có được khóa chủ đề được tạo bằng

Stack [most recent call last]:
727

bản phát hành[]

Giải phóng khóa luồng thu được bằng

Stack [most recent call last]:
729

setLevel[level]

Đặt ngưỡng cho trình xử lý này ở mức. Thông báo ghi nhật ký ít nghiêm trọng hơn mức sẽ bị bỏ qua. Khi trình xử lý được tạo, mức được đặt thành

Stack [most recent call last]:
24 [khiến tất cả thư được xử lý]

See Logging Levels for a list of levels.

Đã thay đổi trong phiên bản 3. 2. Tham số cấp độ hiện chấp nhận biểu diễn chuỗi của cấp độ, chẳng hạn như ‘INFO’ thay thế cho các hằng số nguyên, chẳng hạn như

Stack [most recent call last]:
26.

setFormatter[fmt]

Đặt

Stack [most recent call last]:
18 cho trình xử lý này thành fmt

addFilter[filter]

Thêm bộ lọc bộ lọc được chỉ định vào trình xử lý này

removeFilter[filter]

Xóa bộ lọc bộ lọc đã chỉ định khỏi trình xử lý này

filter[record]

Áp dụng bộ lọc của trình xử lý này cho bản ghi và trả về

Stack [most recent call last]:
22 nếu bản ghi sẽ được xử lý. Các bộ lọc được tham khảo lần lượt cho đến khi một trong số chúng trả về giá trị sai. Nếu không có giá trị nào trả về giá trị sai, bản ghi sẽ được phát ra. Nếu một trả về giá trị sai, trình xử lý sẽ không phát ra bản ghi

tuôn ra[]

Đảm bảo tất cả đầu ra ghi nhật ký đã được xóa. Phiên bản này không làm gì cả và dự định sẽ được thực hiện bởi các lớp con

đóng[]

Thu dọn mọi tài nguyên được sử dụng bởi trình xử lý. Phiên bản này không có đầu ra nhưng loại bỏ trình xử lý khỏi danh sách trình xử lý nội bộ bị đóng khi gọi ____________. Các lớp con phải đảm bảo rằng điều này được gọi từ các phương thức

Stack [most recent call last]:
05 bị ghi đè

handle[record]

Phát ra bản ghi nhật ký được chỉ định một cách có điều kiện, tùy thuộc vào các bộ lọc có thể đã được thêm vào trình xử lý. Kết thúc quá trình phát hành thực tế của bản ghi với việc thu nhận/giải phóng khóa luồng I/O

xử lýLỗi[bản ghi]

Phương thức này nên được gọi từ trình xử lý khi gặp ngoại lệ trong cuộc gọi

Stack [most recent call last]:
06. Nếu thuộc tính cấp mô-đun
Stack [most recent call last]:
07 là
Stack [most recent call last]:
12, các ngoại lệ sẽ bị bỏ qua một cách âm thầm. Đây là điều chủ yếu được mong muốn đối với hệ thống ghi nhật ký - hầu hết người dùng sẽ không quan tâm đến lỗi trong hệ thống ghi nhật ký, họ quan tâm nhiều hơn đến lỗi ứng dụng. Tuy nhiên, bạn có thể thay thế điều này bằng một trình xử lý tùy chỉnh nếu muốn. Bản ghi được chỉ định là bản ghi đang được xử lý khi xảy ra ngoại lệ. [Giá trị mặc định của
Stack [most recent call last]:
07 là
Stack [most recent call last]:
22, vì điều đó hữu ích hơn trong quá trình phát triển]

định dạng[bản ghi]

Thực hiện định dạng cho bản ghi - nếu bộ định dạng được đặt, hãy sử dụng nó. Nếu không, hãy sử dụng trình định dạng mặc định cho mô-đun

phát ra[bản ghi]

Làm bất cứ điều gì cần thiết để thực sự ghi lại bản ghi nhật ký được chỉ định. Phiên bản này dự định sẽ được triển khai bởi các lớp con và do đó làm tăng

Stack [most recent call last]:
11

Cảnh báo

Phương thức này được gọi sau khi có được khóa cấp trình xử lý, được giải phóng sau khi phương thức này trả về. Khi bạn ghi đè phương thức này, hãy lưu ý rằng bạn nên cẩn thận khi gọi bất kỳ thứ gì gọi ra các phần khác của API ghi nhật ký có thể khóa, vì điều đó có thể dẫn đến bế tắc. Đặc biệt

  • API cấu hình ghi nhật ký có khóa cấp mô-đun, sau đó khóa cấp trình xử lý riêng lẻ khi các trình xử lý đó được định cấu hình

  • Nhiều API ghi nhật ký khóa cấp mô-đun. Nếu một API như vậy được gọi từ phương thức này, nó có thể gây ra bế tắc nếu lệnh gọi cấu hình được thực hiện trên một luồng khác, bởi vì luồng đó sẽ cố lấy khóa cấp mô-đun trước khóa cấp trình xử lý, trong khi luồng này cố lấy

Để biết danh sách các trình xử lý được bao gồm dưới dạng tiêu chuẩn, hãy xem

Stack [most recent call last]:
12

Đối tượng định dạng¶

Các đối tượng

Stack [most recent call last]:
18 có các thuộc tính và phương thức sau. Họ chịu trách nhiệm chuyển đổi một
Stack [most recent call last]:
15 thành [thường] một chuỗi có thể được giải thích bởi con người hoặc hệ thống bên ngoài. Cơ sở
Stack [most recent call last]:
18 cho phép chỉ định một chuỗi định dạng. Nếu không có giá trị nào được cung cấp, giá trị mặc định của
Stack [most recent call last]:
16 được sử dụng, giá trị này chỉ bao gồm thông báo trong cuộc gọi ghi nhật ký. Để có các mục thông tin bổ sung trong đầu ra được định dạng [chẳng hạn như dấu thời gian], hãy tiếp tục đọc

Có thể khởi tạo Trình định dạng bằng chuỗi định dạng sử dụng kiến ​​thức về các thuộc tính của

Stack [most recent call last]:
15 - chẳng hạn như giá trị mặc định được đề cập ở trên, tận dụng thực tế là thông báo và đối số của người dùng được định dạng sẵn thành thông báo của
Stack [most recent call last]:
15 . Chuỗi định dạng này chứa các phím ánh xạ %-style chuẩn của Python. Xem phần Định dạng chuỗi kiểu printf để biết thêm thông tin về định dạng chuỗi.

Các khóa ánh xạ hữu ích trong

Stack [most recent call last]:
15 được đưa ra trong phần về thuộc tính LogRecord .

lớp ghi nhật ký. Trình định dạng[fmt=Không có, datefmt=None, style='%', validate=True, *, defaults=None]

Trả về một thể hiện mới của lớp

Stack [most recent call last]:
18. Phiên bản được khởi tạo với một chuỗi định dạng cho toàn bộ thư, cũng như một chuỗi định dạng cho phần ngày/giờ của một thư. Nếu không có fmt nào được chỉ định, thì sử dụng
Stack [most recent call last]:
16. Nếu không có datefmt được chỉ định, một định dạng được sử dụng được mô tả trong tài liệu
Stack [most recent call last]:
22

Tham số kiểu có thể là một trong số ‘%’, ‘{’ hoặc ‘$’ và xác định cách chuỗi định dạng sẽ được hợp nhất với dữ liệu của nó. sử dụng một trong %-formatting,

Stack [most recent call last]:
23 hoặc
Stack [most recent call last]:
24. Điều này chỉ áp dụng cho chuỗi định dạng fmt [e. g.
Stack [most recent call last]:
16 hoặc
Stack [most recent call last]:
26], không phải thông điệp bản ghi thực tế được chuyển đến
Stack [most recent call last]:
27, v.v.; .
Using particular formatting styles throughout your application for more information on using {- and $-formatting for log messages.

Tham số mặc định có thể là một từ điển với các giá trị mặc định để sử dụng trong các trường tùy chỉnh. Ví dụ.

Stack [most recent call last]:
28

Đã thay đổi trong phiên bản 3. 2. Tham số kiểu đã được thêm vào.

Đã thay đổi trong phiên bản 3. 8. Tham số xác thực đã được thêm vào. Phong cách không chính xác hoặc không phù hợp và fmt sẽ tăng

Stack [most recent call last]:
29. Ví dụ.
Stack [most recent call last]:
30.

Đã thay đổi trong phiên bản 3. 10. Tham số mặc định đã được thêm vào.

định dạng[bản ghi]

Từ điển thuộc tính của bản ghi được sử dụng làm toán hạng cho thao tác định dạng chuỗi. Trả về chuỗi kết quả. Trước khi định dạng từ điển, một vài bước chuẩn bị được thực hiện. Thuộc tính thông báo của bản ghi được tính bằng msg % args. Nếu chuỗi định dạng chứa

Stack [most recent call last]:
31, thì
Stack [most recent call last]:
22 được gọi để định dạng thời gian sự kiện. Nếu có thông tin ngoại lệ, nó sẽ được định dạng bằng cách sử dụng
Stack [most recent call last]:
33 và được thêm vào thông báo. Lưu ý rằng thông tin ngoại lệ được định dạng được lưu trữ trong thuộc tính exc_text. Điều này rất hữu ích vì thông tin ngoại lệ có thể được chọn và gửi qua đường dây, nhưng bạn nên cẩn thận nếu bạn có nhiều hơn một lớp con
Stack [most recent call last]:
18 tùy chỉnh định dạng của thông tin ngoại lệ. Trong trường hợp này, bạn sẽ phải xóa giá trị đã lưu trong bộ nhớ cache [bằng cách đặt thuộc tính exc_text thành
Stack [most recent call last]:
20] sau khi trình định dạng đã thực hiện xong định dạng của nó, để trình định dạng tiếp theo xử lý sự kiện không sử dụng giá trị đã lưu trong bộ nhớ cache mà tính toán lại từ đầu

Nếu thông tin ngăn xếp có sẵn, nó sẽ được thêm vào sau thông tin ngoại lệ, sử dụng

Stack [most recent call last]:
36 để chuyển đổi nếu cần

formatTime[bản ghi , datefmt=None]

Phương pháp này nên được gọi từ

Stack [most recent call last]:
37 bởi một trình định dạng muốn sử dụng thời gian được định dạng. Phương pháp này có thể được ghi đè trong các trình định dạng để cung cấp cho bất kỳ yêu cầu cụ thể nào, nhưng hành vi cơ bản như sau. nếu datefmt [một chuỗi] được chỉ định, nó được sử dụng với
Stack [most recent call last]:
38 để định dạng thời gian tạo bản ghi. Mặt khác, định dạng '%Y-%m-%d %H. %M. %S,uuu' được sử dụng, trong đó phần uuu là giá trị mili giây và các chữ cái khác theo tài liệu
Stack [most recent call last]:
38. Thời gian ví dụ ở định dạng này là
Stack [most recent call last]:
40. Chuỗi kết quả được trả về

Hàm này sử dụng hàm do người dùng định cấu hình để chuyển đổi thời gian tạo thành một bộ. Theo mặc định,

Stack [most recent call last]:
41 được sử dụng; . Để thay đổi nó cho tất cả các trình định dạng, ví dụ: nếu bạn muốn tất cả thời gian ghi nhật ký được hiển thị theo giờ GMT, hãy đặt thuộc tính
Stack [most recent call last]:
42 trong lớp
Stack [most recent call last]:
18

Đã thay đổi trong phiên bản 3. 3. Trước đây, định dạng mặc định được mã hóa cứng như trong ví dụ này.

Stack [most recent call last]:
47 trong đó phần trước dấu phẩy được xử lý bằng chuỗi định dạng strptime [
Stack [most recent call last]:
48] và phần sau dấu phẩy là giá trị mili giây. Bởi vì strptime không có trình giữ chỗ định dạng cho mili giây, nên giá trị mili giây được thêm vào bằng cách sử dụng một chuỗi định dạng khác,
Stack [most recent call last]:
49 — và cả hai chuỗi định dạng này đã được mã hóa cứng vào phương thức này. Với sự thay đổi, các chuỗi này được định nghĩa là các thuộc tính cấp độ lớp có thể được ghi đè ở cấp độ thể hiện khi muốn. Tên của các thuộc tính là
Stack [most recent call last]:
50 [đối với chuỗi định dạng strptime] và
Stack [most recent call last]:
51 [đối với giá trị nối thêm mili giây].

Đã thay đổi trong phiên bản 3. 9. _______151 có thể là ____220.

formatException[exc_info]

Định dạng thông tin ngoại lệ đã chỉ định [bộ ngoại lệ tiêu chuẩn được trả về bởi

Stack [most recent call last]:
10] dưới dạng chuỗi. Việc triển khai mặc định này chỉ sử dụng
Stack [most recent call last]:
55. Chuỗi kết quả được trả về

formatStack[stack_info]

Định dạng thông tin ngăn xếp đã chỉ định [một chuỗi được trả về bởi

Stack [most recent call last]:
56, nhưng với dòng mới cuối cùng đã bị xóa] dưới dạng một chuỗi. Việc triển khai mặc định này chỉ trả về giá trị đầu vào

lớp ghi nhật ký. BufferingFormatter[linefmt=Không có]

Một lớp định dạng cơ sở phù hợp để phân lớp khi bạn muốn định dạng một số bản ghi. Bạn có thể chuyển một phiên bản

Stack [most recent call last]:
18 mà bạn muốn sử dụng để định dạng từng dòng [tương ứng với một bản ghi]. Nếu không được chỉ định, trình định dạng mặc định [chỉ xuất thông báo sự kiện] được sử dụng làm trình định dạng dòng

formatHeader[bản ghi]

Trả về tiêu đề cho danh sách bản ghi. Việc triển khai cơ sở chỉ trả về chuỗi rỗng. Bạn sẽ cần ghi đè phương thức này nếu bạn muốn hành vi cụ thể, e. g. để hiển thị số lượng bản ghi, tiêu đề hoặc dòng phân cách

formatFooter[bản ghi]

Trả về chân trang cho danh sách bản ghi. Việc triển khai cơ sở chỉ trả về chuỗi rỗng. Bạn sẽ cần ghi đè phương thức này nếu bạn muốn hành vi cụ thể, e. g. để hiển thị số lượng bản ghi hoặc một dòng phân cách

định dạng[bản ghi]

Trả về văn bản được định dạng cho một danh sách các bản ghi. Việc triển khai cơ sở chỉ trả về chuỗi trống nếu không có bản ghi nào;

Lọc đối tượng¶

Stack [most recent call last]:
58 có thể được sử dụng bởi
Stack [most recent call last]:
59 và
Stack [most recent call last]:
60 để lọc tinh vi hơn mức được cung cấp bởi các cấp độ. Lớp bộ lọc cơ sở chỉ cho phép các sự kiện nằm dưới một điểm nhất định trong hệ thống phân cấp bộ ghi. Ví dụ: bộ lọc được khởi tạo với 'A. B’ sẽ cho phép các sự kiện được ghi lại bởi bộ ghi ‘A. BA. B. C’, ‘A. B. C. Đ’, ‘A. B. D', v.v. nhưng không phải 'A. BB’, ‘B. A. B', v.v. Nếu được khởi tạo với chuỗi rỗng, tất cả các sự kiện được thông qua

lớp ghi nhật ký. Bộ lọc[tên=']

Trả về một thể hiện của lớp

Stack [most recent call last]:
61. Nếu tên được chỉ định, nó đặt tên cho một bộ ghi, cùng với các phần tử con của nó, sẽ cho phép các sự kiện của nó thông qua bộ lọc. Nếu tên là chuỗi rỗng, cho phép mọi sự kiện

filter[record]

Bản ghi được chỉ định có được ghi lại không? . Nếu xét thấy phù hợp, hồ sơ có thể được sửa đổi tại chỗ bằng phương pháp này

Lưu ý rằng các bộ lọc được gắn vào trình xử lý được tham khảo trước khi một sự kiện được phát ra bởi trình xử lý, trong khi các bộ lọc được gắn vào bộ ghi được tham khảo bất cứ khi nào một sự kiện được ghi lại [sử dụng

Stack [most recent call last]:
5,
Stack [most recent call last]:
63, v.v. ], trước khi gửi một sự kiện tới bộ xử lý. Điều này có nghĩa là các sự kiện được tạo bởi bộ ghi nhật ký con cháu sẽ không được lọc theo cài đặt bộ lọc của bộ ghi, trừ khi bộ lọc cũng đã được áp dụng cho các bộ ghi con cháu đó

Bạn thực sự không cần phải phân lớp

Stack [most recent call last]:
61. bạn có thể vượt qua bất kỳ trường hợp nào có phương thức
Stack [most recent call last]:
65 với cùng ngữ nghĩa

Đã thay đổi trong phiên bản 3. 2. Bạn không cần tạo các lớp

Stack [most recent call last]:
61 chuyên biệt hoặc sử dụng các lớp khác với phương thức
Stack [most recent call last]:
65. bạn có thể sử dụng một chức năng [hoặc có thể gọi khác] làm bộ lọc. Logic lọc sẽ kiểm tra xem đối tượng lọc có thuộc tính
Stack [most recent call last]:
65 hay không. nếu có, nó được coi là một
Stack [most recent call last]:
61 và phương thức
Stack [most recent call last]:
23 của nó được gọi là. Mặt khác, nó được coi là có thể gọi được và được gọi với bản ghi dưới dạng tham số duy nhất. Giá trị được trả về phải phù hợp với giá trị được trả về bởi
Stack [most recent call last]:
23.

Mặc dù các bộ lọc được sử dụng chủ yếu để lọc các bản ghi dựa trên các tiêu chí phức tạp hơn so với các cấp độ, nhưng chúng có thể xem mọi bản ghi được xử lý bởi trình xử lý hoặc trình ghi nhật ký mà chúng được đính kèm. điều này có thể hữu ích nếu bạn muốn thực hiện những việc như đếm xem có bao nhiêu bản ghi đã được xử lý bởi một bộ ghi hoặc trình xử lý cụ thể hoặc thêm, thay đổi hoặc xóa các thuộc tính trong

Stack [most recent call last]:
15 đang được xử lý. Rõ ràng việc thay đổi LogRecord cần phải được thực hiện một cách cẩn thận, nhưng nó cho phép đưa thông tin theo ngữ cảnh vào nhật ký [xem Sử dụng Bộ lọc để truyền đạt thông tin theo ngữ cảnh ].

Đối tượng LogRecord¶

Phiên bản

Stack [most recent call last]:
15 được tạo tự động bởi
Stack [most recent call last]:
74 mỗi khi nội dung nào đó được ghi lại và có thể được tạo theo cách thủ công thông qua
Stack [most recent call last]:
75 [ví dụ: từ một sự kiện chọn lọc nhận được qua đường dây]

lớp ghi nhật ký. Bản ghi nhật ký[tên , cấp độ level, pathname, lineno, msg, args, exc_info, func=None, sinfo=None]

Chứa tất cả thông tin liên quan đến sự kiện đang được ghi lại

Thông tin chính được truyền dưới dạng msg và args, được kết hợp bằng cách sử dụng

Stack [most recent call last]:
76 để tạo thuộc tính
Stack [most recent call last]:
77 của bản ghi

Thông số
  • name [str] – Tên của bộ ghi nhật ký được sử dụng để ghi lại sự kiện được đại diện bởi

    Stack [most recent call last]:
    
    15 này. Lưu ý rằng tên trình ghi nhật ký trong
    Stack [most recent call last]:
    
    15 sẽ luôn có giá trị này, mặc dù nó có thể được phát ra bởi trình xử lý được gắn với trình ghi nhật ký [tổ tiên] khác

  • level [int] – cấp độ số của sự kiện ghi nhật ký [chẳng hạn như

    Stack [most recent call last]:
    
    80 cho
    Stack [most recent call last]:
    
    39,
    Stack [most recent call last]:
    
    82 cho
    Stack [most recent call last]:
    
    26, v.v.]. Lưu ý rằng điều này được chuyển thành hai thuộc tính của LogRecord.
    Stack [most recent call last]:
    
    84 cho giá trị số và
    Stack [most recent call last]:
    
    85 cho tên cấp độ tương ứng.

  • tên đường dẫn [str] – Đường dẫn chuỗi đầy đủ của tệp nguồn nơi lệnh gọi ghi nhật ký được thực hiện

  • lineno [int] – Số dòng trong tệp nguồn nơi lệnh gọi ghi nhật ký được thực hiện

  • msg [str] – Thông báo mô tả sự kiện, có thể là chuỗi %-format với phần giữ chỗ cho dữ liệu biến

  • args [bộ dữ liệu. dict[str, Any]] – Dữ liệu biến để hợp nhất vào đối số msg để lấy mô tả sự kiện

  • exc_info [tuple[type[BaseException], BaseException, types. TracbackType]. Không có] – Một bộ dữ liệu ngoại lệ với thông tin ngoại lệ hiện tại, như được trả về bởi

    Stack [most recent call last]:
    
    10 hoặc
    Stack [most recent call last]:
    
    20 nếu không có thông tin ngoại lệ nào

  • chức năng [str. Không có] – Tên của hàm hoặc phương thức mà từ đó lệnh gọi ghi nhật ký được gọi

  • thông tin [str. Không có] – Một chuỗi văn bản biểu thị thông tin ngăn xếp từ cơ sở của ngăn xếp trong chuỗi hiện tại, cho đến lệnh gọi ghi nhật ký

getMessage[]

Trả về thông báo cho phiên bản

Stack [most recent call last]:
15 này sau khi hợp nhất bất kỳ đối số nào do người dùng cung cấp với thông báo. Nếu đối số thông báo do người dùng cung cấp cho cuộc gọi ghi nhật ký không phải là một chuỗi, thì
Stack [most recent call last]:
89 sẽ được gọi trên đó để chuyển đổi nó thành một chuỗi. Điều này cho phép sử dụng các lớp do người dùng định nghĩa làm thông báo, có phương thức
Stack [most recent call last]:
90 có thể trả về chuỗi định dạng thực tế sẽ được sử dụng

Đã thay đổi trong phiên bản 3. 2. Việc tạo một

Stack [most recent call last]:
15 đã được thực hiện nhiều cấu hình hơn bằng cách cung cấp một nhà máy được sử dụng để tạo bản ghi. Nhà máy có thể được đặt bằng cách sử dụng
Stack [most recent call last]:
92 và
Stack [most recent call last]:
93 [xem phần này để biết chữ ký của nhà máy].

Chức năng này có thể được sử dụng để đưa các giá trị của riêng bạn vào một

Stack [most recent call last]:
15 tại thời điểm tạo. Bạn có thể sử dụng mẫu sau

Stack [most recent call last]:
3

Với mẫu này, nhiều nhà máy có thể được xâu chuỗi và miễn là chúng không ghi đè lên các thuộc tính của nhau hoặc vô tình ghi đè lên các thuộc tính tiêu chuẩn được liệt kê ở trên, thì sẽ không có gì ngạc nhiên

Thuộc tính LogRecord¶

LogRecord có một số thuộc tính, hầu hết trong số đó được lấy từ các tham số cho hàm tạo. [Lưu ý rằng các tên không phải lúc nào cũng tương ứng chính xác giữa các tham số hàm tạo LogRecord và các thuộc tính LogRecord. ] Các thuộc tính này có thể được sử dụng để hợp nhất dữ liệu từ bản ghi thành chuỗi định dạng. Bảng sau liệt kê [theo thứ tự bảng chữ cái] tên thuộc tính, ý nghĩa của chúng và trình giữ chỗ tương ứng trong chuỗi định dạng %-style

Nếu bạn đang sử dụng định dạng {} [

Stack [most recent call last]:
23], bạn có thể sử dụng
Stack [most recent call last]:
96 làm trình giữ chỗ trong chuỗi định dạng. Nếu bạn đang sử dụng định dạng $ [
Stack [most recent call last]:
24], hãy sử dụng biểu mẫu
Stack [most recent call last]:
98. Tất nhiên, trong cả hai trường hợp, hãy thay thế
Stack [most recent call last]:
99 bằng tên thuộc tính thực mà bạn muốn sử dụng

Trong trường hợp định dạng {}, bạn có thể chỉ định các cờ định dạng bằng cách đặt chúng sau tên thuộc tính, được phân tách bằng dấu hai chấm. Ví dụ. trình giữ chỗ của

Stack [most recent call last]:
100 sẽ định dạng giá trị mili giây của
Stack [most recent call last]:
101 thành
Stack [most recent call last]:
102. Tham khảo tài liệu
Stack [most recent call last]:
23 để biết đầy đủ chi tiết về các tùy chọn có sẵn cho bạn

tên thuộc tính

Định dạng

Sự mô tả

tranh luận

Bạn không cần phải tự định dạng cái này

Bộ đối số được hợp nhất thành

Stack [most recent call last]:
104 để tạo ra
Stack [most recent call last]:
77 hoặc một lệnh có giá trị được sử dụng để hợp nhất [khi chỉ có một đối số và đó là một từ điển]

thời gian đi lên

Stack [most recent call last]:
106

Thời điểm con người có thể đọc được khi

Stack [most recent call last]:
15 được tạo. Theo mặc định, đây là dạng '2003-07-08 16. 49. 45,896’ [các số sau dấu phẩy là phần nghìn giây của thời gian]

tạo

Stack [most recent call last]:
108

Thời gian khi

Stack [most recent call last]:
15 được tạo [được trả về bởi
Stack [most recent call last]:
110]

ex_info

Bạn không cần phải tự định dạng cái này

Bộ ngoại lệ [à la

Stack [most recent call last]:
111] hoặc, nếu không có ngoại lệ nào xảy ra,
Stack [most recent call last]:
20

tên tập tin

Stack [most recent call last]:
113

Phần tên tệp của

Stack [most recent call last]:
114

tên chức năng

Stack [most recent call last]:
115

Tên hàm chứa lời gọi ghi nhật ký

tên cấp độ

Stack [most recent call last]:
116

Mức ghi nhật ký văn bản cho tin nhắn [

Stack [most recent call last]:
117,
Stack [most recent call last]:
118,
Stack [most recent call last]:
119,
Stack [most recent call last]:
120,
Stack [most recent call last]:
121]

levelno

Stack [most recent call last]:
122

Cấp độ ghi số cho tin nhắn [

Stack [most recent call last]:
39,
Stack [most recent call last]:
26,
Stack [most recent call last]:
25,
Stack [most recent call last]:
62,
Stack [most recent call last]:
64]

vải lanh

Stack [most recent call last]:
128

Số dòng nguồn nơi thực hiện cuộc gọi ghi nhật ký [nếu có]

thông điệp

Stack [most recent call last]:
129

Tin nhắn đã ghi, được tính là

Stack [most recent call last]:
76. Điều này được đặt khi
Stack [most recent call last]:
131 được gọi

mô-đun

Stack [most recent call last]:
132

Mô-đun [phần tên của

Stack [most recent call last]:
133]

mili giây

Stack [most recent call last]:
134

Phần mili giây của thời gian khi

Stack [most recent call last]:
15 được tạo

tin nhắn

Bạn không cần phải tự định dạng cái này

Chuỗi định dạng được chuyển trong lệnh gọi ghi nhật ký ban đầu. Hợp nhất với

Stack [most recent call last]:
136 để tạo ra
Stack [most recent call last]:
77 hoặc một đối tượng tùy ý [xem Sử dụng các đối tượng tùy ý làm thông báo ].

Tên

Stack [most recent call last]:
138

Tên của bộ ghi được sử dụng để ghi lại cuộc gọi

tên đường dẫn

Stack [most recent call last]:
139

Tên đường dẫn đầy đủ của tệp nguồn nơi thực hiện cuộc gọi ghi nhật ký [nếu có]

quá trình

Stack [most recent call last]:
140

ID quy trình [nếu có]

processName

Stack [most recent call last]:
141

Tên quy trình [nếu có]

người thânĐã tạo

Stack [most recent call last]:
142

Thời gian tính bằng mili giây khi Bản ghi nhật ký được tạo, tương ứng với thời gian mô-đun ghi nhật ký được tải

stack_info

Bạn không cần phải tự định dạng cái này

Thông tin khung ngăn xếp [nếu có] từ dưới cùng của ngăn xếp trong luồng hiện tại, cho đến và bao gồm khung ngăn xếp của lệnh gọi ghi nhật ký dẫn đến việc tạo bản ghi này

chủ đề

Stack [most recent call last]:
143

ID chủ đề [nếu có]

tên chủ đề

Stack [most recent call last]:
144

Tên chủ đề [nếu có]

Đã thay đổi trong phiên bản 3. 1. ProcessName đã được thêm vào.

Đối tượng LoggerAdapter¶

Stack [most recent call last]:
145 phiên bản được sử dụng để chuyển thông tin theo ngữ cảnh một cách thuận tiện vào các cuộc gọi ghi nhật ký. Để biết ví dụ về cách sử dụng, hãy xem phần về thêm thông tin theo ngữ cảnh vào kết quả ghi nhật ký của bạn .

lớp ghi nhật ký. LoggerAdapter[logger , thêm]

Trả về một phiên bản của

Stack [most recent call last]:
145 được khởi tạo với một phiên bản
Stack [most recent call last]:
74 bên dưới và một đối tượng giống như dict

quy trình[tin nhắn , kwargs]

Modifies the message and/or keyword arguments passed to a logging call in order to insert contextual information. Việc triển khai này lấy đối tượng được truyền dưới dạng bổ sung cho hàm tạo và thêm nó vào kwargs bằng cách sử dụng khóa 'thêm'. Giá trị trả về là một bộ [msg, kwargs] có các phiên bản [có thể được sửa đổi] của các đối số được truyền vào

Ngoài những điều trên,

Stack [most recent call last]:
145 hỗ trợ các phương thức sau của
Stack [most recent call last]:
74.
Stack [most recent call last]:
5,
Stack [most recent call last]:
63,
Stack [most recent call last]:
152,
Stack [most recent call last]:
153,
Stack [most recent call last]:
154,
Stack [most recent call last]:
155,
Stack [most recent call last]:
156,
Stack [most recent call last]:
28,
Stack [most recent call last]:
27,
Stack [most recent call last]:
32 và
Stack [most recent call last]:
160. Các phương thức này có cùng chữ ký như các đối tác của chúng trong
Stack [most recent call last]:
74, vì vậy bạn có thể sử dụng hai loại phiên bản thay thế cho nhau

Đã thay đổi trong phiên bản 3. 2. Các phương thức

Stack [most recent call last]:
28,
Stack [most recent call last]:
27,
Stack [most recent call last]:
32 và
Stack [most recent call last]:
160 đã được thêm vào
Stack [most recent call last]:
145. Các phương thức này ủy quyền cho bộ ghi bên dưới.

Đã thay đổi trong phiên bản 3. 6. Thuộc tính

Stack [most recent call last]:
167 và phương thức
Stack [most recent call last]:
168 đã được thêm vào để ủy quyền cho bộ ghi bên dưới và cho phép các bộ điều hợp được lồng vào nhau.

Chỉ an toàn¶

Mô-đun ghi nhật ký nhằm đảm bảo an toàn cho luồng mà không cần khách hàng thực hiện bất kỳ công việc đặc biệt nào. Nó đạt được điều này mặc dù sử dụng khóa luồng;

Nếu bạn đang triển khai trình xử lý tín hiệu không đồng bộ bằng mô-đun

Stack [most recent call last]:
169, bạn không thể sử dụng ghi nhật ký từ bên trong các trình xử lý đó. Điều này là do việc triển khai khóa trong mô-đun
Stack [most recent call last]:
170 không phải lúc nào cũng được cấp lại và do đó không thể được gọi từ các trình xử lý tín hiệu đó

Chức năng cấp mô-đun¶

Ngoài các lớp được mô tả ở trên, còn có một số chức năng cấp mô-đun

ghi nhật ký. getLogger[tên=Không có]

Trả về trình ghi nhật ký có tên đã chỉ định hoặc, nếu tên là

Stack [most recent call last]:
20, trả về trình ghi nhật ký là trình ghi nhật ký gốc của cấu trúc phân cấp. Nếu được chỉ định, tên thường là tên phân cấp được phân tách bằng dấu chấm như 'a', 'a. b’ hoặc ‘a. b. c. d’. Lựa chọn những tên này hoàn toàn phụ thuộc vào nhà phát triển đang sử dụng ghi nhật ký

Tất cả các cuộc gọi đến chức năng này với một tên đã cho trả về cùng một phiên bản trình ghi nhật ký. Điều này có nghĩa là các phiên bản trình ghi nhật ký không bao giờ cần phải được chuyển giữa các phần khác nhau của ứng dụng

ghi nhật ký. getLoggerClass[]

Trả lại lớp

Stack [most recent call last]:
74 tiêu chuẩn hoặc lớp cuối cùng được chuyển đến
Stack [most recent call last]:
173. Chức năng này có thể được gọi từ bên trong định nghĩa lớp mới, để đảm bảo rằng việc cài đặt lớp
Stack [most recent call last]:
74 tùy chỉnh sẽ không hoàn tác các tùy chỉnh đã được áp dụng bởi mã khác. Ví dụ

Stack [most recent call last]:
1

ghi nhật ký. getLogRecordFactory[]

Trả về một callable được sử dụng để tạo một

Stack [most recent call last]:
15

Mới trong phiên bản 3. 2. Chức năng này đã được cung cấp, cùng với

Stack [most recent call last]:
93, để cho phép các nhà phát triển kiểm soát nhiều hơn cách xây dựng
Stack [most recent call last]:
15 đại diện cho một sự kiện ghi nhật ký.

Xem

Stack [most recent call last]:
93 để biết thêm thông tin về cách gọi nhà máy

ghi nhật ký. gỡ lỗi[tin nhắn , *args, **kwargs]

Ghi nhật ký một thông báo có cấp độ

Stack [most recent call last]:
39 trên bộ ghi gốc. Thông điệp là chuỗi định dạng thông báo và các đối số là các đối số được hợp nhất vào thông báo bằng cách sử dụng toán tử định dạng chuỗi. [Lưu ý rằng điều này có nghĩa là bạn có thể sử dụng các từ khóa trong chuỗi định dạng, cùng với một đối số từ điển đơn lẻ. ]

Có ba đối số từ khóa trong kwargs được kiểm tra. exc_info, nếu nó không đánh giá là sai, sẽ khiến thông tin ngoại lệ được thêm vào thông báo ghi nhật ký. Nếu một bộ ngoại lệ [ở định dạng được trả về bởi

Stack [most recent call last]:
10] hoặc một trường hợp ngoại lệ được cung cấp, nó sẽ được sử dụng;

The second optional keyword argument is stack_info, which defaults to

Stack [most recent call last]:
12. If true, stack information is added to the logging message, including the actual logging call. Note that this is not the same stack information as that displayed through specifying exc_info. The former is stack frames from the bottom of the stack up to the logging call in the current thread, whereas the latter is information about stack frames which have been unwound, following an exception, while searching for exception handlers

You can specify stack_info independently of exc_info, e. g. to just show how you got to a certain point in your code, even when no exceptions were raised. The stack frames are printed following a header line which says

Stack [most recent call last]:

This mimics the

Stack [most recent call last]:
13 which is used when displaying exception frames

Đối số từ khóa tùy chọn thứ ba là bổ sung có thể được sử dụng để chuyển một từ điển được sử dụng để điền vào __dict__ của LogRecord được tạo cho sự kiện ghi nhật ký với các thuộc tính do người dùng xác định. Các thuộc tính tùy chỉnh này sau đó có thể được sử dụng tùy thích. Ví dụ: chúng có thể được kết hợp vào các tin nhắn đã ghi. Ví dụ

Stack [most recent call last]:
6

sẽ in một cái gì đó như

Stack [most recent call last]:
2

The keys in the dictionary passed in extra should not clash with the keys used by the logging system. [Xem tài liệu

Stack [most recent call last]:
18 để biết thêm thông tin về khóa nào được sử dụng bởi hệ thống ghi nhật ký. ]

Nếu bạn chọn sử dụng các thuộc tính này trong các tin nhắn đã đăng nhập, bạn cần cẩn thận. Ví dụ, trong ví dụ trên,

Stack [most recent call last]:
18 đã được thiết lập với một chuỗi định dạng mong đợi 'clientip' và 'user' trong từ điển thuộc tính của LogRecord. Nếu những thứ này bị thiếu, thông báo sẽ không được ghi vì sẽ xảy ra ngoại lệ định dạng chuỗi. Vì vậy, trong trường hợp này, bạn luôn cần chuyển từ điển phụ bằng các phím này

While this might be annoying, this feature is intended for use in specialized circumstances, such as multi-threaded servers where the same code executes in many contexts, and interesting conditions which arise are dependent on this context [such as remote client IP address and authenticated user name, in the above example]. In such circumstances, it is likely that specialized

Stack [most recent call last]:
18s would be used with particular
Stack [most recent call last]:
1s

Chức năng này [cũng như

Stack [most recent call last]:
63,
Stack [most recent call last]:
152,
Stack [most recent call last]:
153 và
Stack [most recent call last]:
155] sẽ gọi
Stack [most recent call last]:
192 nếu bộ ghi gốc không có bất kỳ trình xử lý nào được đính kèm

Changed in version 3. 2. The stack_info parameter was added.

ghi nhật ký. thông tin[tin nhắn , *args, **kwargs]

Ghi nhật ký một thông báo có cấp độ

Stack [most recent call last]:
26 trên bộ ghi gốc. Các đối số được hiểu là cho
Stack [most recent call last]:
5

ghi nhật ký. cảnh báo[tin nhắn , *args, **kwargs]

Ghi một tin nhắn với cấp độ

Stack [most recent call last]:
25 trên bộ ghi gốc. Các đối số được hiểu là cho
Stack [most recent call last]:
5

Note

Có một hàm lỗi thời

Stack [most recent call last]:
8 có chức năng giống hệt với
Stack [most recent call last]:
9. Vì
Stack [most recent call last]:
8 không được dùng nữa, vui lòng không sử dụng nó - thay vào đó hãy sử dụng
Stack [most recent call last]:
9

ghi nhật ký. lỗi[tin nhắn , *args, **kwargs]

Ghi nhật ký một thông báo có cấp độ

Stack [most recent call last]:
62 trên bộ ghi gốc. Các đối số được hiểu là cho
Stack [most recent call last]:
5

ghi nhật ký. quan trọng[tin nhắn , *args, **kwargs]

Ghi nhật ký một thông báo có cấp độ

Stack [most recent call last]:
64 trên bộ ghi gốc. Các đối số được hiểu là cho
Stack [most recent call last]:
5

ghi nhật ký. ngoại lệ[tin nhắn , *args, **kwargs]

Ghi nhật ký một thông báo có cấp độ

Stack [most recent call last]:
62 trên bộ ghi gốc. Các đối số được hiểu là cho
Stack [most recent call last]:
5. Thông tin ngoại lệ được thêm vào thông báo ghi nhật ký. Chức năng này chỉ nên được gọi từ một trình xử lý ngoại lệ

ghi nhật ký. log[cấp độ , thông điệp, *args, **kwargs]

Ghi nhật ký một thông báo với cấp độ trên bộ ghi gốc. Các đối số khác được hiểu là cho

Stack [most recent call last]:
5

ghi nhật ký. vô hiệu hóa[mức=CẤM]

Cung cấp cấp độ ghi đè cho tất cả các trình ghi nhật ký được ưu tiên hơn cấp độ riêng của trình ghi nhật ký. Khi có nhu cầu tạm thời giảm đầu ra ghi nhật ký trên toàn bộ ứng dụng, chức năng này có thể hữu ích. Tác dụng của nó là vô hiệu hóa tất cả các cuộc gọi ghi nhật ký ở mức độ nghiêm trọng trở xuống, để nếu bạn gọi nó với giá trị INFO, thì tất cả các sự kiện INFO và GỠ LỖI sẽ bị loại bỏ, trong khi các cuộc gọi ở mức độ nghiêm trọng WARNING trở lên sẽ được xử lý theo quy định của trình ghi nhật ký. . Nếu

Stack [most recent call last]:
208 được gọi, nó sẽ loại bỏ mức ghi đè này một cách hiệu quả, do đó đầu ra ghi nhật ký lại phụ thuộc vào mức hiệu quả của từng trình ghi nhật ký

Lưu ý rằng nếu bạn đã xác định bất kỳ cấp độ ghi nhật ký tùy chỉnh nào cao hơn

Stack [most recent call last]:
64 [điều này không được khuyến nghị], thì bạn sẽ không thể dựa vào giá trị mặc định cho thông số cấp độ mà sẽ phải cung cấp một giá trị phù hợp một cách rõ ràng

Đã thay đổi trong phiên bản 3. 7. Tham số cấp được mặc định là cấp

Stack [most recent call last]:
64. Xem bpo-28524 để biết thêm thông tin về thay đổi này.

ghi nhật ký. addLevelName[cấp , levelName]

Liên kết cấp độ với cấp độ văn bảnName trong từ điển nội bộ, được sử dụng để ánh xạ cấp độ số thành biểu diễn văn bản, ví dụ: khi

Stack [most recent call last]:
18 định dạng thư. Chức năng này cũng có thể được sử dụng để xác định cấp độ của riêng bạn. Hạn chế duy nhất là tất cả các cấp được sử dụng phải được đăng ký bằng chức năng này, các cấp phải là số nguyên dương và chúng phải tăng theo mức độ nghiêm trọng tăng dần

Note

Nếu bạn đang nghĩ đến việc xác định cấp độ của riêng mình, vui lòng xem phần về Cấp độ tùy chỉnh .

ghi nhật ký. getLevelNamesMapping[]

Trả về ánh xạ từ tên cấp độ tới cấp độ ghi nhật ký tương ứng của chúng. For example, the string “CRITICAL” maps to

Stack [most recent call last]:
64. Ánh xạ trả về được sao chép từ ánh xạ nội bộ trên mỗi lệnh gọi hàm này

Mới trong phiên bản 3. 11

ghi nhật ký. getLevelName[cấp độ]

Trả về biểu diễn dạng văn bản hoặc số của cấp độ ghi nhật ký

Nếu cấp độ là một trong các cấp độ được xác định trước

Stack [most recent call last]:
64,
Stack [most recent call last]:
62,
Stack [most recent call last]:
25,
Stack [most recent call last]:
26 hoặc
Stack [most recent call last]:
39 thì bạn nhận được chuỗi tương ứng. Nếu bạn đã liên kết cấp độ với tên bằng cách sử dụng
Stack [most recent call last]:
218 thì tên bạn đã liên kết với cấp độ sẽ được trả về. Nếu một giá trị số tương ứng với một trong các mức đã xác định được truyền vào, thì biểu diễn chuỗi tương ứng sẽ được trả về

Tham số mức cũng chấp nhận biểu diễn chuỗi của mức, chẳng hạn như 'INFO'. Trong những trường hợp như vậy, hàm này trả về giá trị số tương ứng của cấp độ

Nếu không có giá trị số hoặc chuỗi phù hợp nào được chuyển vào, chuỗi ‘Level %s’ % level được trả về

Note

Các cấp độ là các số nguyên bên trong [vì chúng cần được so sánh trong logic ghi nhật ký]. Hàm này được sử dụng để chuyển đổi giữa cấp độ số nguyên và tên cấp độ được hiển thị trong đầu ra nhật ký được định dạng bằng công cụ xác định định dạng

Stack [most recent call last]:
116 [xem thuộc tính LogRecord ] .

Đã thay đổi trong phiên bản 3. 4. Trong các phiên bản Python cũ hơn 3. 4, chức năng này cũng có thể được thông qua một cấp độ văn bản, và sẽ trả về giá trị số tương ứng của cấp độ. Hành vi không có giấy tờ này được coi là một lỗi và đã bị xóa trong Python 3. 4, nhưng được phục hồi trong 3. 4. 2 do duy trì khả năng tương thích ngược.

ghi nhật ký. makeLogRecord[attrdict]

Tạo và trả về một phiên bản

Stack [most recent call last]:
15 mới có các thuộc tính được xác định bởi attrdict. Chức năng này rất hữu ích để lấy một từ điển thuộc tính
Stack [most recent call last]:
15 đã chọn, được gửi qua một ổ cắm và tạo lại nó dưới dạng một phiên bản
Stack [most recent call last]:
15 ở đầu nhận

ghi nhật ký. basicConfig[**kwargs]

Cấu hình cơ bản cho hệ thống ghi nhật ký bằng cách tạo một

Stack [most recent call last]:
223 với một
Stack [most recent call last]:
18 mặc định và thêm nó vào bộ ghi gốc. Các hàm
Stack [most recent call last]:
5,
Stack [most recent call last]:
63,
Stack [most recent call last]:
152,
Stack [most recent call last]:
153 và
Stack [most recent call last]:
155 sẽ tự động gọi
Stack [most recent call last]:
192 nếu không có trình xử lý nào được xác định cho bộ ghi gốc

Hàm này không làm gì nếu trình ghi gốc đã được định cấu hình trình xử lý, trừ khi lực đối số từ khóa được đặt thành

Stack [most recent call last]:
22

Note

Chức năng này nên được gọi từ luồng chính trước khi các luồng khác được bắt đầu. Trong các phiên bản Python trước 2. 7. 1 và 3. 2, nếu chức năng này được gọi từ nhiều luồng, có thể [trong một số trường hợp hiếm gặp] một trình xử lý sẽ được thêm vào bộ ghi gốc nhiều lần, dẫn đến các kết quả không mong muốn như thông báo bị trùng lặp trong nhật ký

Các đối số từ khóa sau đây được hỗ trợ

Định dạng

Sự mô tả

tên tập tin

Chỉ định rằng một

Stack [most recent call last]:
232 được tạo, sử dụng tên tệp đã chỉ định, thay vì một
Stack [most recent call last]:
223

chế độ tập tin

Nếu tên tệp được chỉ định, hãy mở tệp trong chế độ này. Mặc định là

Stack [most recent call last]:
234.

định dạng

Sử dụng chuỗi định dạng được chỉ định cho trình xử lý. Mặc định cho các thuộc tính

Stack [most recent call last]:
85,
Stack [most recent call last]:
2 và
Stack [most recent call last]:
77 được phân tách bằng dấu hai chấm

datefmt

Sử dụng định dạng ngày/giờ đã chỉ định, như được chấp nhận bởi

Stack [most recent call last]:
38

Phong cách

Nếu định dạng được chỉ định, hãy sử dụng kiểu này cho chuỗi định dạng. Một trong số

Stack [most recent call last]:
239,
Stack [most recent call last]:
240 hoặc
Stack [most recent call last]:
241 cho kiểu in ,
Stack [most recent call last]:
23 hoặc
Stack [most recent call last]:
24 tương ứng. Mặc định là
Stack [most recent call last]:
239.

mức độ

Đặt cấp độ bộ ghi gốc thành cấp độ đã chỉ định .

dòng

Sử dụng luồng được chỉ định để khởi tạo

Stack [most recent call last]:
223. Note that this argument is incompatible with filename - if both are present, a
Stack [most recent call last]:
29 is raised

người xử lý

Nếu được chỉ định, đây sẽ là một trình xử lý có thể lặp lại đã được tạo để thêm vào trình ghi nhật ký gốc. Bất kỳ trình xử lý nào chưa có bộ định dạng sẽ được chỉ định bộ định dạng mặc định được tạo trong chức năng này. Lưu ý rằng đối số này không tương thích với tên tệp hoặc luồng - nếu cả hai đều có mặt, thì sẽ xuất hiện

Stack [most recent call last]:
29

lực lượng

Nếu đối số từ khóa này được chỉ định là đúng, thì bất kỳ trình xử lý hiện có nào được đính kèm với bộ ghi gốc sẽ bị xóa và đóng, trước khi thực hiện cấu hình như được chỉ định bởi các đối số khác

mã hóa

Nếu đối số từ khóa này được chỉ định cùng với tên tệp, thì giá trị của nó được sử dụng khi tạo

Stack [most recent call last]:
232 và do đó được sử dụng khi mở tệp đầu ra

lỗi

Nếu đối số từ khóa này được chỉ định cùng với tên tệp, thì giá trị của nó được sử dụng khi tạo

Stack [most recent call last]:
232 và do đó được sử dụng khi mở tệp đầu ra. Nếu không được chỉ định, giá trị 'dấu gạch chéo ngược' sẽ được sử dụng. Lưu ý rằng nếu
Stack [most recent call last]:
20 được chỉ định, nó sẽ được chuyển như vậy cho
Stack [most recent call last]:
251, có nghĩa là nó sẽ được xử lý giống như chuyển 'lỗi'

Đã thay đổi trong phiên bản 3. 2. Đối số kiểu đã được thêm vào.

Đã thay đổi trong phiên bản 3. 3. Đã thêm đối số trình xử lý. Các kiểm tra bổ sung đã được thêm vào để nắm bắt các tình huống trong đó các đối số không tương thích được chỉ định [e. g. trình xử lý cùng với luồng hoặc tên tệp hoặc luồng cùng với tên tệp].

Đã thay đổi trong phiên bản 3. 8. Đã thêm đối số force.

Đã thay đổi trong phiên bản 3. 9. Các đối số mã hóa và lỗi đã được thêm vào.

ghi nhật ký. tắt máy[]

Thông báo cho hệ thống ghi nhật ký thực hiện tắt máy có trật tự bằng cách xóa và đóng tất cả các trình xử lý. Điều này nên được gọi khi thoát ứng dụng và không nên sử dụng thêm hệ thống ghi nhật ký sau cuộc gọi này

Khi mô-đun ghi nhật ký được nhập, nó sẽ đăng ký chức năng này dưới dạng trình xử lý thoát [xem

Stack [most recent call last]:
252], vì vậy thông thường không cần phải thực hiện thủ công

ghi nhật ký. setLoggerClass[klass]

Yêu cầu hệ thống ghi nhật ký sử dụng lớp klass khi khởi tạo trình ghi nhật ký. Lớp nên định nghĩa

Stack [most recent call last]:
724 sao cho chỉ cần một đối số tên và
Stack [most recent call last]:
724 nên gọi
Stack [most recent call last]:
255. Chức năng này thường được gọi trước khi bất kỳ trình ghi nhật ký nào được khởi tạo bởi các ứng dụng cần sử dụng hành vi trình ghi nhật ký tùy chỉnh. Sau cuộc gọi này, cũng như bất kỳ lúc nào khác, không khởi tạo trực tiếp trình ghi nhật ký bằng cách sử dụng lớp con. tiếp tục sử dụng API
Stack [most recent call last]:
256 để lấy nhật ký của bạn

ghi nhật ký. setLogRecordFactory[nhà máy]

Đặt một cuộc gọi có thể được sử dụng để tạo một

Stack [most recent call last]:
15

Thông số

nhà máy - Nhà máy có thể gọi được sử dụng để khởi tạo bản ghi nhật ký

Mới trong phiên bản 3. 2. Chức năng này đã được cung cấp, cùng với

Stack [most recent call last]:
92, để cho phép các nhà phát triển kiểm soát nhiều hơn cách xây dựng
Stack [most recent call last]:
15 đại diện cho một sự kiện ghi nhật ký.

Nhà máy có chữ ký sau

Stack [most recent call last]:
260

Tên

Tên nhật ký

mức độ

Cấp độ ghi nhật ký [số]

fn

Tên đường dẫn đầy đủ của tệp thực hiện cuộc gọi ghi nhật ký

không

Số dòng trong tệp thực hiện cuộc gọi ghi nhật ký

tin nhắn

Thông báo đăng nhập

tranh luận

Các đối số cho thông báo ghi nhật ký

ex_info

An exception tuple, or

Stack [most recent call last]:
20

chức năng

Tên của hàm hoặc phương thức đã gọi lệnh gọi ghi nhật ký

thông tin

Truy nguyên ngăn xếp, chẳng hạn như được cung cấp bởi

Stack [most recent call last]:
56, hiển thị phân cấp cuộc gọi

kwargs

Đối số từ khóa bổ sung

Thuộc tính cấp mô-đun¶

ghi nhật ký. Khu nghỉ dưỡng cuối cùng

Một "người xử lý cuối cùng" có sẵn thông qua thuộc tính này. Đây là một

Stack [most recent call last]:
223 viết cho
Stack [most recent call last]:
264 với cấp độ là
Stack [most recent call last]:
25 và được sử dụng để xử lý các sự kiện ghi nhật ký trong trường hợp không có bất kỳ cấu hình ghi nhật ký nào. The end result is to just print the message to
Stack [most recent call last]:
264. Điều này thay thế thông báo lỗi trước đó nói rằng “không thể tìm thấy trình xử lý nào cho trình ghi nhật ký XYZ”. Nếu bạn cần hành vi sớm hơn vì lý do nào đó, có thể đặt
Stack [most recent call last]:
3 thành
Stack [most recent call last]:
20

Mới trong phiên bản 3. 2

Tích hợp với mô-đun cảnh báo¶

Chức năng

Stack [most recent call last]:
269 có thể được sử dụng để tích hợp
Stack [most recent call last]:
72 với mô-đun
Stack [most recent call last]:
16

ghi nhật ký. cảnh báo chụp[chụp]

This function is used to turn the capture of warnings by logging on and off

If capture is

Stack [most recent call last]:
22, warnings issued by the
Stack [most recent call last]:
16 module will be redirected to the logging system. Specifically, a warning will be formatted using
Stack [most recent call last]:
274 and the resulting string logged to a logger named
Stack [most recent call last]:
275 with a severity of
Stack [most recent call last]:
25

If capture is

Stack [most recent call last]:
12, the redirection of warnings to the logging system will stop, and warnings will be redirected to their original destinations [i. e. những thứ có hiệu lực trước khi
Stack [most recent call last]:
278 được gọi]

Xem thêm

Mô-đun
Stack [most recent call last]:
279

Configuration API for the logging module

Module
Stack [most recent call last]:
12

Useful handlers included with the logging module

PEP 282 - Hệ thống ghi nhật ký

The proposal which described this feature for inclusion in the Python standard library

Original Python logging package

This is the original source for the

Stack [most recent call last]:
72 package. The version of the package available from this site is suitable for use with Python 1. 5. 2, 2. 1. x and 2. 2. x, which do not include the
Stack [most recent call last]:
72 package in the standard library

Chủ Đề