我目前正试图在我的Python记录器中正确对齐日志记录级别字段,以便输出如下:
[2011-10-14 13:47:51] [DEBUG] --- starting... (smtphandlers.py:96)
[2011-10-14 13:47:51] [INFO] --- first things first... (smtphandlers.py:97)
[2011-10-14 13:47:51] [WARNING] --- about to end... (smtphandlers.py:98)
[2011-10-14 13:47:51] [DEBUG] --- ending (smtphandlers.py:99)
Run Code Online (Sandbox Code Playgroud)
相反看起来像:
[2011-10-14 13:47:51] [ DEBUG] --- starting... (smtphandlers.py:96)
[2011-10-14 13:47:51] [ INFO] --- first things first... (smtphandlers.py:97)
[2011-10-14 13:47:51] [ WARNING] --- about to end... (smtphandlers.py:98)
[2011-10-14 13:47:51] [ DEBUG] --- ending (smtphandlers.py:99)
Run Code Online (Sandbox Code Playgroud)
第一个块的格式行是:
logging.Formatter("[%(asctime)s] [%(levelname)s] --- %(message)s (%(filename)s:%(lineno)s)", "%Y-%m-%d %H:%M:%S")
Run Code Online (Sandbox Code Playgroud)
如果我知道最大级别长度是8(例如:CRITICAL),那么我将右对齐8个空格.我正试图弄清楚如何实现这一目标.以下操作失败,因为"%(levelname)s"超过8个字符(替换直到稍后才会发生).如果我使用"{0:> 20}".格式化"%(levelname)s"之类的东西,那么它可以工作,但这比我需要或想要的填充更多.
logging.Formatter("[%(asctime)s] [" + "{0:>8}".format"%(levelname)s" + "] --- %(message)s …Run Code Online (Sandbox Code Playgroud) 我有一个类似于以下链接中描述的问题,当我尝试在派生类中声明基类的成员时,私有继承的基类给出"在此上下文中不可访问"错误: http:// bytes .COM /主题/ C /答案/ 164246-私有继承的呈现级不可访问
在上面的例子中,使用:: X显式引用X,但如果代码位于如下函数中,该怎么办?
void fooby()
{
class X {};
class Y : private X {};
class Z : public Y
{
public:
X x; // compiler "inaccessible within this context" error
};
};
Run Code Online (Sandbox Code Playgroud)
在这种情况下你如何引用X?
如果fooby是一个结构/类,那么:: fooby :: X可以工作,但我不知道如何在上面的情况下这样做.