Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:在日志模块中包装日志文件文本_Python_Logging_Word Wrap - Fatal编程技术网

Python:在日志模块中包装日志文件文本

Python:在日志模块中包装日志文件文本,python,logging,word-wrap,Python,Logging,Word Wrap,有没有一种方法可以配置Pythonlogging模块的实例,将它写入的文本包装到日志文件中 当前,每个logging.info()或warning()或任何调用只写入一行,即使它非常长。这损害了可读性。如果能够设置一些字符,记录器将在这些字符之后换行到下一行,那就太好了 运行:Windows7、Python 3.3 更正:日志文件中很长的条目确实会被包装,但必须在500-1000个字符之后。这一套在哪里,可以放低一点吗?我想不出一个好办法,而且据我所知,不管日志行有多长,它都不应该缠绕日志行 一

有没有一种方法可以配置Python
logging
模块的实例,将它写入的文本包装到日志文件中

当前,每个logging.info()或warning()或任何调用只写入一行,即使它非常长。这损害了可读性。如果能够设置一些字符,记录器将在这些字符之后换行到下一行,那就太好了

运行:Windows7、Python 3.3


更正:日志文件中很长的条目确实会被包装,但必须在500-1000个字符之后。这一套在哪里,可以放低一点吗?

我想不出一个好办法,而且据我所知,不管日志行有多长,它都不应该缠绕日志行

一般来说,在调用日志时,应注意对多行的日志记录,但我认为这是一种糟糕的做法,因为它可以使日志分析更困难。

如果您这样做,我会在您包装的每一行的开头添加一个选项卡,这样您就可以知道哪些行是同一日志消息条目的一部分:

log.info("firstLine\t\nsecondLine\t\nthridLine")
输出应如下所示:

INFO:firstLine
    secondLine
    thridLine
INFO: This is a 
    String I w
    ant to log
     to many l
    ines
另一个使其更加自动化的选项是在日志行中添加类似的内容:

X = "This is a String I want to log to many lines"
log.info("".join([X[i:i+10]+"\n\t" for i in xrange(0, len(X), 10)]))
输出应如下所示:

INFO:firstLine
    secondLine
    thridLine
INFO: This is a 
    String I w
    ant to log
     to many l
    ines

只需将for循环中的10和字符串大小更改为您想要的大小。

我想不出一个好方法来做到这一点,而且据我所知,无论日志行有多长,它都不应该包裹日志行

一般来说,在调用日志时,应注意对多行的日志记录,但我认为这是一种糟糕的做法,因为它可以使日志分析更困难。

如果您这样做,我会在您包装的每一行的开头添加一个选项卡,这样您就可以知道哪些行是同一日志消息条目的一部分:

log.info("firstLine\t\nsecondLine\t\nthridLine")
输出应如下所示:

INFO:firstLine
    secondLine
    thridLine
INFO: This is a 
    String I w
    ant to log
     to many l
    ines
另一个使其更加自动化的选项是在日志行中添加类似的内容:

X = "This is a String I want to log to many lines"
log.info("".join([X[i:i+10]+"\n\t" for i in xrange(0, len(X), 10)]))
输出应如下所示:

INFO:firstLine
    secondLine
    thridLine
INFO: This is a 
    String I w
    ant to log
     to many l
    ines

只需将for循环中的10和字符串大小更改为您想要的大小。

我想不出一个好方法来做到这一点,而且据我所知,无论日志行有多长,它都不应该包裹日志行

一般来说,在调用日志时,应注意对多行的日志记录,但我认为这是一种糟糕的做法,因为它可以使日志分析更困难。

如果您这样做,我会在您包装的每一行的开头添加一个选项卡,这样您就可以知道哪些行是同一日志消息条目的一部分:

log.info("firstLine\t\nsecondLine\t\nthridLine")
输出应如下所示:

INFO:firstLine
    secondLine
    thridLine
INFO: This is a 
    String I w
    ant to log
     to many l
    ines
另一个使其更加自动化的选项是在日志行中添加类似的内容:

X = "This is a String I want to log to many lines"
log.info("".join([X[i:i+10]+"\n\t" for i in xrange(0, len(X), 10)]))
输出应如下所示:

INFO:firstLine
    secondLine
    thridLine
INFO: This is a 
    String I w
    ant to log
     to many l
    ines

只需将for循环中的10和字符串大小更改为您想要的大小。

我想不出一个好方法来做到这一点,而且据我所知,无论日志行有多长,它都不应该包裹日志行

一般来说,在调用日志时,应注意对多行的日志记录,但我认为这是一种糟糕的做法,因为它可以使日志分析更困难。

如果您这样做,我会在您包装的每一行的开头添加一个选项卡,这样您就可以知道哪些行是同一日志消息条目的一部分:

log.info("firstLine\t\nsecondLine\t\nthridLine")
输出应如下所示:

INFO:firstLine
    secondLine
    thridLine
INFO: This is a 
    String I w
    ant to log
     to many l
    ines
另一个使其更加自动化的选项是在日志行中添加类似的内容:

X = "This is a String I want to log to many lines"
log.info("".join([X[i:i+10]+"\n\t" for i in xrange(0, len(X), 10)]))
输出应如下所示:

INFO:firstLine
    secondLine
    thridLine
INFO: This is a 
    String I w
    ant to log
     to many l
    ines

只需将for循环中的10和字符串大小更改为您想要的大小。

我带着同样的问题来到这里,最后使用了Luke的方法,但是使用了内置python模块。我喜欢将文本包装在空白处,并在连字符单词中的连字符后面,而且我喜欢为包装行添加缩进的规定。因此:

import textwrap
textwrap.fill(log_line, subsequent_indent = '\t\t\t\t')

我带着同样的问题来到这里,最后使用了Luke的方法,但是使用了内置python模块。我喜欢将文本包装在空白处,并在连字符单词中的连字符后面,而且我喜欢为包装行添加缩进的规定。因此:

import textwrap
textwrap.fill(log_line, subsequent_indent = '\t\t\t\t')

我带着同样的问题来到这里,最后使用了Luke的方法,但是使用了内置python模块。我喜欢将文本包装在空白处,并在连字符单词中的连字符后面,而且我喜欢为包装行添加缩进的规定。因此:

import textwrap
textwrap.fill(log_line, subsequent_indent = '\t\t\t\t')

我带着同样的问题来到这里,最后使用了Luke的方法,但是使用了内置python模块。我喜欢将文本包装在空白处,并在连字符单词中的连字符后面,而且我喜欢为包装行添加缩进的规定。因此:

import textwrap
textwrap.fill(log_line, subsequent_indent = '\t\t\t\t')

不,
logging
从不换行-可能是您的编辑器在做这件事。不过,您可以在日志消息中包含换行符。不,
logging
从不换行—可能是您的编辑器在执行此操作。不过,您可以在日志消息中包含换行符。不,
logging
从不换行—可能是您的编辑器在执行此操作。不过,您可以在日志消息中包含换行符。不,
logging
从不换行—可能是您的编辑器在执行此操作。不过,您可以在日志消息中包含换行符。