我想记录一行描述记录器创建的每个日志文件的日志信息。
目前我正在使用一个独立的记录器进程,它将一直运行。它从队列接收信息并将其写入日志。许多模块都会将信息传递给此日志记录队列。
我目前的示例代码是:
import logging
import time
from logging.handlers import TimedRotatingFileHandler as rotate
def info_log(log_queue):
logger = logging.getLogger("My Log")
logger.setLevel(logging.INFO)
handler = rotate("log/info.log", when="D", interval=30, backupCount=13)
logger.addHandler(handler)
desc_string = "yyyy/mm/dd-HH:MM:SS \t name \t country \n"
logger.info(desc_string)
while True:
result=log_queue.get().split("#")
logger.info(result[0] + "\t" result[1] + "\t" + result[2] + "\n")
每次轮换日志时,我都希望desc_string
首先写入日志文件。
我该怎么做?
或者换句话说,如何在日志旋转时知道程序?
答案 0 :(得分:1)
也许你可以简单地从TimedRotatingFileHandler覆盖doRollover方法?
import javax.swing.*;
class myFrame extends JFrame {
// private mypanel p1;
myFrame() /*here I'm getting error that "invalid decleration, return type required */ {
this.setSize(400, 500);
this.setTitle("My First GUI");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mypanel p=new mypanel();
this.add(p);
setVisible(true);
}
}
class mypanel extends JPanel {
private JButton b1;
mypanel() {
b1 = new JButton("Click me");
this.add(b1);
}
}
class mygui {
public static void main(String args[]) {
myFrame f = new myFrame();
myFrame f1 = new myFrame();
}
}