filename=<spanclass="hljs-keyword">None</span>, <spanclass="hljs-comment"># Logs to console (stderr) by default.</span>
format=<spanclass="hljs-string">'%(levelname)s:%(name)s:%(message)s'</span>, <spanclass="hljs-comment"># Add `%(asctime)s` for local datetime.</span>
level=logging.WARNING, <spanclass="hljs-comment"># Drops messages with lower priority.</span>
handlers=[logging.StreamHandler()]<spanclass="hljs-comment"># Uses FileHandler if filename is set.</span>
handlers=[logging.StreamHandler(sys.stderr)] <spanclass="hljs-comment"># Uses FileHandler if filename is set.</span>
)
</code></pre></div>
<pre><codeclass="python language-python hljs"><Formatter> = logging.Formatter(<spanclass="hljs-string">'<format>'</span>) <spanclass="hljs-comment"># Creates a Formatter.</span>
<Handler> = logging.FileHandler(<path>) <spanclass="hljs-comment"># Creates a Handler.</span>
<Handler> = logging.FileHandler(<path>, mode=<spanclass="hljs-string">'a'</span>)<spanclass="hljs-comment"># Creates a Handler. Also `encoding=None`.</span>
<Handler>.setFormatter(<Formatter>) <spanclass="hljs-comment"># Adds Formatter to the Handler.</span>
<Handler>.setLevel(<int/str>) <spanclass="hljs-comment"># Processes all messages by default.</span>
<Logger>.addHandler(<Handler>) <spanclass="hljs-comment"># Adds Handler to the Logger.</span>
<li><strong>A <codeclass="python hljs"><spanclass="hljs-string">'handlers.RotatingFileHandler'</span></code> creates and deletes log files based on 'maxBytes' and 'backupCount' arguments.</strong></li>
</ul>
<div><h4id="createsaloggerthatwritesallmessagestofileandsendsthemtotherootshandlerthatprintswarningsorhigher">Creates a logger that writes all messages to file and sends them to the root's handler that prints warnings or higher:</h4><pre><codeclass="python language-python hljs"><spanclass="hljs-meta">>>></span>logger = logging.getLogger(<spanclass="hljs-string">'my_module'</span>)