说不清楚,展开看吧,代码不到30行
首先我定义一个类:import logging
class Logger():
def __init__(self, logfile='output.log'):
self.logfile = logfile
self.logger = logging.getLogger(__name__)
logging.basicConfig(
format='[%(asctime)s] - %(message)s',
datefmt='%Y_%m_%d %H:%M:%S',
level=logging.INFO,
filename=self.logfile
)
def info(self, msg, *args):
msg = str(msg)
if args:
print(msg % args)
self.logger.info(msg, *args)
else:
print(msg)
self.logger.info(msg)
然后我在下面的代码中使用了上面这个类:
import Logger
for foo in range(0, 10):
file_name = "./out/" + str(foo) + ".log"
logger = Logger(file_name)
logger.info(str(foo))
我期望的是得到名字为0~9共10个.log文件,并且每个文件中的内容就是名字本身,比如:
“5.log”文件中是“ - 5”
“6.log”文件中是“ - 6”
然而上述代码运行后却得到只有一个“0.log”文件,其中内容为:
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
请问我要如何解决该问题?
我是一个椭圆 发表于 2022-5-24 11:58
已解决:
我是来收赏金的 已解决:
class Logger():
def __init__(self, logfile='output.log'):
self.logfile = logfile
self.logger = logging.getLogger(logfile)
fh = logging.FileHandler(logfile, mode='w')
lf = logging.Formatter('[%(asctime)s] - %(message)s')
fh.setFormatter(lf)
self.logger.addHandler(fh)
logging.basicConfig(
format='[%(asctime)s] - %(message)s',
datefmt='%Y_%m_%d %H:%M:%S',
level=logging.INFO,
#filename=self.logfile
) wp231957 发表于 2022-5-23 22:56
我是来收赏金的
哈哈哈,那你来的真是时候
页:
[1]