File: //usr/lib/python3/dist-packages/hgext/__pycache__/blackbox.cpython-310.pyc
o
�]Lb� � @ s8 d Z ddlmZ ddlZddlmZ ddlmZ ddlm Z m
Z
mZ ddlm
Z
mZ dZi Ze�e�Zi Ze�e�Zed d
dd� ed d
dd� ed ddd� ed ddd� ed ddd� d� ed ddd� d� ed ddd� e
�� ZG dd� de�Zdd� Zdd� Zed dd d!ed"�fged#�ejd$d%�d&d'� �ZdS )(a{ log repository events to a blackbox for debugging
Logs event information to .hg/blackbox.log to help debug and diagnose problems.
The events that get logged can be configured via the blackbox.track and
blackbox.ignore config keys.
Examples::
[blackbox]
track = *
ignore = pythonhook
# dirty is *EXPENSIVE* (slow);
# each log entry indicates `+` if the repository is dirty, like :hg:`id`.
dirty = True
# record the source of log messages
logsource = True
[blackbox]
track = command, commandfinish, commandexception, exthook, pythonhook
[blackbox]
track = incoming
[blackbox]
# limit the size of a log file
maxsize = 1.5 MB
# rotate up to N log files when the current one gets too big
maxfiles = 3
[blackbox]
# Include microseconds in log entries with %f (see Python function
# datetime.datetime.strftime)
date-format = %Y-%m-%d @ %H:%M:%S.%f
� )�absolute_importN)�_)�hex)�encoding�loggingutil� registrar)�dateutil�procutils ships-with-hg-core� blackbox� dirtyF)�default� maxsizes 1 MB� logsource� maxfiles� � trackc C s dgS �N� *� r r r �0/usr/lib/python3/dist-packages/hgext/blackbox.py�<lambda>a s r � ignorec C s g d�S )N)s chgservers cmdservers extensionr r r r r r f s � date-format� c @ s, e Zd Zdd� Zdd� Zdd� Zdd� Zd S )
�blackboxloggerc C sP || _ t|�dd��| _t|�dd��| _|�dd�| _|�dd�| _d| _ d S )Nr
r r r r
F)
�_repo�set�
configlist�_trackedevents�_ignoredevents� configint� _maxfiles�configbytes�_maxsize�_inlog)�self�ui�repor r r �__init__n s
zblackboxlogger.__init__c C s d| j v o || jvp|| j v S r )r r )r% �eventr r r �trackedv s ��zblackboxlogger.trackedc C s6 | j rd S d| _ z| �||||� W d| _ d S d| _ w )NTF)r$ �_log)r% r&