- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我想在我的应用程序中使用 python 的日志框架,并且我想允许我的应用程序的最终用户指定日志文件。 (通过 Python 日志记录框架的 configuration mechanisms,在我的例子中,它是 YAML 文件的一部分,最终用户可以编辑它来指定日志记录的行为方式。)
有没有办法让日志框架通过创建一个目录来确保它存在? 因为日志文件名的确切路径嵌入在最终用户指定的配置信息中,所以它对于作为应用程序编写者的我来说,解析这些信息以确定应该创建哪个目录是非常重要的。
如果最终用户指定“foo/bar/baz.log”,我想确保创建了 foo/bar 目录。
注意:这是 this SO question about Java logging 的 Python 等价物。 .
最佳答案
子类 FileHandler
(或您正在使用的任何处理程序)在初始化期间调用 mkdir_p
:
import logging
import os
import errno
def mkdir_p(path):
"""http://stackoverflow.com/a/600612/190597 (tzot)"""
try:
os.makedirs(path, exist_ok=True) # Python>3.2
except TypeError:
try:
os.makedirs(path)
except OSError as exc: # Python >2.5
if exc.errno == errno.EEXIST and os.path.isdir(path):
pass
else: raise
class MakeFileHandler(logging.FileHandler):
def __init__(self, filename, mode='a', encoding=None, delay=0):
mkdir_p(os.path.dirname(filename))
logging.FileHandler.__init__(self, filename, mode, encoding, delay)
关于python日志记录: how to ensure logfile directory is created?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20666764/
我的模型中有一个在私有(private)方法中运行的简单方法: def with_time_zone(zone) @old_time_zone = Time.zone Time.zone =
我想了解如何在代码中使用 Ensures()。正如 example 中给出的那样,如果我尝试使用 Ensures() 如下... int main(void) { int result = 0
当一个方法结束工作时我们也许需要进行清理工作.也许一个打开的文件需要关闭,缓冲区的数据应清空等等.如果对于每一个方法这里永远只有一个退出点,我们可以心安理得地将我们的清理代码放在一个地方并知道它会被
问题 我想检查 R 中的函数工厂是否“安全”。这里的“安全”意味着工厂创建的函数的结果仅取决于它们的参数,而不取决于全局变量。 描述 这是一个不安全的工厂: funfac_bad = function
如果我们有不同的由 webpack 创建的包并且我们 require.ensure在稍后的时间点动态传输+评估它的东西,它通过 jsonPadding 和一些 webpack js 魔法发生。如果我们
我正在开发一个小型 REST API。当我开始分析所有可能的故障场景(我必须处理这些故障场景以创建可靠且稳定的系统)时,我开始思考如何使我的 API 原子化。 如果我们采用通过 POST API 创建
我在 Xor 上有这段代码猫的对象 Xor.right(data).ensure(List(s"$name cannot be blank"))(_.nonEmpty) 现在由于 Xor 已被删除,我
我有一个带有 out 参数的方法,我想使用 Contract.Ensures() 指定当方法返回时,参数不会是 空。 基本上,这是: void M(out object o) { Contra
我开始使用 Code Contracts,虽然 Contract.Requires 非常简单,但我很难理解 Ensures 的实际作用。 我试过创建一个像这样的简单方法: static void Ma
我有一个问题 当我添加一些依赖项时,例如 github.com/jmoiron/sqlx 这个依赖项,我必须等待很长时间,然后它什么都不做,只显示消息“Fetching Sources” 我已经等了
我正在构建一个依赖预定作业的 Heroku 应用程序。我们以前使用 Heroku Scheduler,但时钟进程似乎更加灵活和健壮。所以现在我们使用时钟进程在特定时间/间隔将后台作业排入队列。 Her
我在 Scala 中有一个打字问题的小问题。在 Haskell 中,我可以这样做: add :: (Num a) => (a,a) -> (a,a) -> (a,a) 这样,我就可以扔进add任何支持
这是一个负责与服务器通信的类: public abstract class AbstractCommunicationChannel implements Runnable { static
我不明白为什么静态检查器说这个方法一切正常: public static int GetNonNegativeValue() { Contract.Ensures(Contract.Resul
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我有一个在 eventmachine react 器中运行的服务器,它监听用户的心跳以判断他们是否在线。当它开始/停止接收心跳时,它会适本地将用户标记为在线和离线。 我想将它全部包装在一个 ensur
我正在使用假设来测试将两个等长列表作为输入的函数。 import hypothesis.strategies as st from hypothesis import assume, given @g
假设我有这个: [Pure] public static TimeSpan Seconds(this int i) { Contract.Ensures(Contract.Result() =
这个问题在这里已经有了答案: How to specify types not allowed in a .NET Generics constraint? (4 个答案) 关闭 8 年前。 我有一
我的 .Net 4 应用程序中有以下代码: static void Main(string[] args) { Func(); } static string S = "1"; static
我是一名优秀的程序员,十分优秀!