log等级,输出格式,输出文件名,文件读写模式
logging.basicConfig(level=logging.DEBUG, format="%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s", filename="log.txt", filemode="a")参数说明 #设置logging日志的配置信息 #level 表示设置级别 #%(asctime)s 表示当前时间 #%(filename)s 表示程序文件名 #%(lineno)d 表示行号 #%(levelname)s 表示日志级别 #%(message)s 表示日志信息
logging.basicConfig(level=logging.DEBUG, format="%(asctime)s-%(filename)s[lineno:%(lineno)d]-%(levelname)s-%(message)s", filename="log.txt", filemode="a") logging.debug("我一个debug级别的日志信息111") logging.info("我一个info级别的日志信息") logging.warning("我一个warning级别的日志信息") logging.error("我一个error级别的日志信息") logging.critical("我一个critical级别的日志信息")#默认是warning, 只有大于等于warning级别的日志才会输出显示
## logging参考文档 format参数: <table class="docutils align-default"> <colgroup> <col style="width: 18%"> <col style="width: 28%"> <col style="width: 53%"> </colgroup> <thead> <tr class="row-odd"><th class="head"><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">属性名称</font></font></p></th> <th class="head"><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">格式</font></font></p></th> <th class="head"><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">描述</font></font></p></th> </tr> </thead> <tbody> <tr class="row-even"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">args</font></font></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">您不需要自己格式化。</font></font></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">参数元组合并</font></font><code class="docutils literal notranslate"><span class="pre">msg</span></code><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">为产生</font></font><code class="docutils literal notranslate"><span class="pre">message</span></code><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">,或dict的值用于合并(当只有一个参数且它是一本字典时)。</font></font></p></td> </tr> <tr class="row-odd"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">上升时间</font></font></p></td> <td><p><code class="docutils literal notranslate"><span class="pre">%(asctime)s</span></code></p></td> <td><p><font style="vertical-align: inherit;"></font><a class="reference internal" href="#logging.LogRecord" title="logging.LogRecord"><code class="xref py py-class docutils literal notranslate"><span class="pre">LogRecord</span></code></a><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">创建</font><font style="vertical-align: inherit;">时的可读时间 </font><font style="vertical-align: inherit;">。</font><font style="vertical-align: inherit;">默认情况下,格式为“ 2003-07-08 16:49:45,896”(逗号后的数字是时间的毫秒部分)。</font></font></p></td> </tr> <tr class="row-even"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">被创造</font></font></p></td> <td><p><code class="docutils literal notranslate"><span class="pre">%(created)f</span></code></p></td> <td><p><font style="vertical-align: inherit;"></font><a class="reference internal" href="#logging.LogRecord" title="logging.LogRecord"><code class="xref py py-class docutils literal notranslate"><span class="pre">LogRecord</span></code></a><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">创建的</font><font style="vertical-align: inherit;">时间</font><font style="vertical-align: inherit;">(由返回</font></font><a class="reference internal" href="time.html#time.time" title="时间"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.time()</span></code></a><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">)。</font></font></p></td> </tr> <tr class="row-odd"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">exc_info</font></font></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">您不需要自己格式化。</font></font></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">异常元组(la </font></font><code class="docutils literal notranslate"><span class="pre">sys.exc_info</span></code><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">),或者,如果未发生异常,则</font></font><code class="docutils literal notranslate"><span class="pre">None</span></code><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">。</font></font></p></td> </tr> <tr class="row-even"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">文档名称</font></font></p></td> <td><p><code class="docutils literal notranslate"><span class="pre">%(filename)s</span></code></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">的文件名部分</font></font><code class="docutils literal notranslate"><span class="pre">pathname</span></code><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">。</font></font></p></td> </tr> <tr class="row-odd"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">funcName</font></font></p></td> <td><p><code class="docutils literal notranslate"><span class="pre">%(funcName)s</span></code></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">包含日志记录调用的函数的名称。</font></font></p></td> </tr> <tr class="row-even"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">级别名称</font></font></p></td> <td><p><code class="docutils literal notranslate"><span class="pre">%(levelname)s</span></code></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">文本日志记录级别消息(</font></font><code class="docutils literal notranslate"><span class="pre">'DEBUG'</span></code><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">,</font></font><code class="docutils literal notranslate"><span class="pre">'INFO'</span></code><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">,</font></font><code class="docutils literal notranslate"><span class="pre">'WARNING'</span></code><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">, </font></font><code class="docutils literal notranslate"><span class="pre">'ERROR'</span></code><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">,</font></font><code class="docutils literal notranslate"><span class="pre">'CRITICAL'</span></code><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">)。</font></font></p></td> </tr> <tr class="row-odd"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Levelno</font></font></p></td> <td><p><code class="docutils literal notranslate"><span class="pre">%(levelno)s</span></code></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">数字记录级别的消息(</font></font><code class="xref py py-const docutils literal notranslate"><span class="pre">DEBUG</span></code><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">,</font></font><code class="xref py py-const docutils literal notranslate"><span class="pre">INFO</span></code><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">, </font></font><code class="xref py py-const docutils literal notranslate"><span class="pre">WARNING</span></code><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">,</font></font><code class="xref py py-const docutils literal notranslate"><span class="pre">ERROR</span></code><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">, </font></font><code class="xref py py-const docutils literal notranslate"><span class="pre">CRITICAL</span></code><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">)。</font></font></p></td> </tr> <tr class="row-even"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">Lineno</font></font></p></td> <td><p><code class="docutils literal notranslate"><span class="pre">%(lineno)d</span></code></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">发出日志记录调用的源行号(如果有)。</font></font></p></td> </tr> <tr class="row-odd"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">信息</font></font></p></td> <td><p><code class="docutils literal notranslate"><span class="pre">%(message)s</span></code></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">记录的消息,计算为</font><font style="vertical-align: inherit;">。</font><font style="vertical-align: inherit;">调用</font><font style="vertical-align: inherit;">时设置 </font><font style="vertical-align: inherit;">。</font></font><code class="docutils literal notranslate"><span class="pre">msg</span> <span class="pre">%</span> <span class="pre">args</span></code><font style="vertical-align: inherit;"></font><a class="reference internal" href="#logging.Formatter.format" title="logging.Formatter.format"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Formatter.format()</span></code></a><font style="vertical-align: inherit;"></font></p></td> </tr> <tr class="row-even"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">模组</font></font></p></td> <td><p><code class="docutils literal notranslate"><span class="pre">%(module)s</span></code></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">模块(的名称部分</font></font><code class="docutils literal notranslate"><span class="pre">filename</span></code><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">)。</font></font></p></td> </tr> <tr class="row-odd"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">毫秒</font></font></p></td> <td><p><code class="docutils literal notranslate"><span class="pre">%(msecs)d</span></code></p></td> <td><p><font style="vertical-align: inherit;"></font><a class="reference internal" href="#logging.LogRecord" title="logging.LogRecord"><code class="xref py py-class docutils literal notranslate"><span class="pre">LogRecord</span></code></a><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">创建</font><font style="vertical-align: inherit;">时的时间的毫秒部分 </font><font style="vertical-align: inherit;">。</font></font></p></td> </tr> <tr class="row-even"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">味精</font></font></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">您不需要自己格式化。</font></font></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">原始日志记录调用中传递的格式字符串。</font><font style="vertical-align: inherit;">合并</font></font><code class="docutils literal notranslate"><span class="pre">args</span></code><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">以产生</font></font><code class="docutils literal notranslate"><span class="pre">message</span></code><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">或任意对象(请参阅</font></font><a class="reference internal" href="../howto/logging.html#arbitrary-object-messages"><span class="std std-ref"><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">使用任意对象作为消息</font></font></span></a><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">)。</font></font></p></td> </tr> <tr class="row-odd"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">名称</font></font></p></td> <td><p><code class="docutils literal notranslate"><span class="pre">%(name)s</span></code></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">用于记录呼叫的记录器的名称。</font></font></p></td> </tr> <tr class="row-even"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">路径名</font></font></p></td> <td><p><code class="docutils literal notranslate"><span class="pre">%(pathname)s</span></code></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">发出日志记录调用的源文件的完整路径名(如果有)。</font></font></p></td> </tr> <tr class="row-odd"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">处理</font></font></p></td> <td><p><code class="docutils literal notranslate"><span class="pre">%(process)d</span></code></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">进程ID(如果有)。</font></font></p></td> </tr> <tr class="row-even"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">processName</font></font></p></td> <td><p><code class="docutils literal notranslate"><span class="pre">%(processName)s</span></code></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">进程名称(如果有)。</font></font></p></td> </tr> <tr class="row-odd"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">relativeCreated</font></font></p></td> <td><p><code class="docutils literal notranslate"><span class="pre">%(relativeCreated)d</span></code></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">创建LogRecord的时间(以毫秒为单位),相对于加载日志模块的时间。</font></font></p></td> </tr> <tr class="row-even"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">stack_info</font></font></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">您不需要自己格式化。</font></font></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">从当前线程中的堆栈底部开始直到导致该记录创建的日志记录调用的堆栈框架(包括可用)的堆栈框架信息(如果有)。</font></font></p></td> </tr> <tr class="row-odd"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">线</font></font></p></td> <td><p><code class="docutils literal notranslate"><span class="pre">%(thread)d</span></code></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">线程ID(如果有)。</font></font></p></td> </tr> <tr class="row-even"><td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">线程名</font></font></p></td> <td><p><code class="docutils literal notranslate"><span class="pre">%(threadName)s</span></code></p></td> <td><p><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">线程名称(如果有)。</font></font></p></td> </tr> </tbody> </table>