亲爱的,
我遇到了Python的一个问题:我正在创建一个日志文件但是一旦我运行我的程序,python和我的日志文件之间仍然存在一个链接:这意味着我无法删除日志文件,下一条日志消息将会即使我想将它们发送到其他地方,也要发送到此日志文件。
我的解决方法是关闭内核并重新启动,但我想编程而不是手动执行。您能否提一些建议?
我的代码:
import logging
#initialize the log settings
logging.basicConfig(filename='address.log',level=logging.INFO)
答案 0 :(得分:0)
使用后需要关闭FileHandler。请参阅相关文章python does not release filehandles to logfile
答案 1 :(得分:0)
简单使用:
Future<void> copyDatabaseFileFromAssets() async {
// Search and create db file destination folder if not exist
final documentsDirectory = await getApplicationDocumentsDirectory();
final objectBoxDirectory = Directory(documentsDirectory.path + '/objectbox/');
if (!objectBoxDirectory.existsSync()) {
await objectBoxDirectory.create(recursive: true);
}
final dbFile = File(objectBoxDirectory.path + '/data.mdb');
if (!dbFile.existsSync()) {
// Get pre-populated db file.
ByteData data = await rootBundle.load("assets/databases/data.mdb");
// Copying source data into destination file.
await dbFile.writeAsBytes(data.buffer.asUint8List());
}
}
答案 2 :(得分:0)
我们可以这样做:
log = logging.getLogger()
for hdle in log.handlers[:]:
if isinstance(hdle,logging.FileHandler):
hdle.close()
log.removeHandler(hdle)
我试过 logging.shutdown()
但这并不总是有效。
您可能还想访问 this thread 以获取更多说明。