File: //usr/lib64/python3.8/logging/__pycache__/config.cpython-38.pyc
U
    e5d�  �                   @   sN  d Z ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZmZ dZ
ejZdad+dd�Zdd	� Zd
d� Zdd
� Zdd� Zdd� Zdd� Zdd� Ze�dej�Zdd� ZG dd� de�ZG dd� dee�Z G dd� de!e�Z"G dd � d e#e�Z$G d!d"� d"e�Z%G d#d$� d$e%�Z&e&Z'd%d&� Z(e
dfd'd(�Z)d)d*� Z*dS ),a  
Configuration functions for the logging package for Python. The core package
is based on PEP 282 and comments thereto in comp.lang.python, and influenced
by Apache's log4j system.
Copyright (C) 2001-2019 Vinay Sajip. All Rights Reserved.
To use, simply 'import logging' and log away!
�    N)�ThreadingTCPServer�StreamRequestHandleriF#  Tc                 C   s�   ddl }t| |j�r| }n*|�|�}t| d�r:|�| � n
|�| � t|�}t�	�  z t�  t||�}t
|||� W 5 t�
�  X dS )aD  
    Read the logging configuration from a ConfigParser-format file.
    This can be called several times from an application, allowing an end user
    the ability to select from various pre-canned configurations (if the
    developer provides a mechanism to present the choices and load the chosen
    configuration).
    r   N�readline)�configparser�
isinstanceZRawConfigParserZConfigParser�hasattrZ	read_file�read�_create_formatters�logging�_acquireLock�_releaseLock�_clearExistingHandlers�_install_handlers�_install_loggers)Zfname�defaults�disable_existing_loggersr   �cp�
formatters�handlers� r   �&/usr/lib64/python3.8/logging/config.py�
fileConfig3   s    	
r   c              	   C   sl   | � d�} | �d�}t|�}| D ]F}|d | }zt||�}W q  tk
rd   t|� t||�}Y q X q |S )z)Resolve a dotted name to a global object.�.r   )�split�pop�
__import__�getattr�AttributeError)�name�used�found�nr   r   r   �_resolveU   s    
r"