【发布时间】:2010-11-04 11:51:02
【问题描述】:
我目前遇到了一些问题。
您可能知道,ruby 记录器会在每个新创建的日志文件的顶部添加一个日志记录头。
"# Logfile created on %s by %s\n" % [Time.now.to_s, Logger::ProgName]
我正在记录 CSV 文件以便稍后将它们导入仓库,通常我只是跳过带有标题的第一行。记录器中似乎存在错误,因为有时记录头会出现不止一次,就在日志文件的中间。
所以我决定简单地忽略该标题。令我惊讶的是,我没有发现任何可以在创建记录器时传递的论点。我想到了这样的事情:
Logger.new "info.log", :skip_header => true
但它只是不存在。我在 ruby 核心资源中进行了搜索,令人惊讶的是,确实没有什么可以阻止记录器添加日志标题:
def create_logfile(filename)
logdev = open(filename, (File::WRONLY | File::APPEND | File::CREAT))
logdev.sync = true
add_log_header(logdev)
logdev
end
def add_log_header(file)
file.write(
"# Logfile created on %s by %s\n" % [Time.now.to_s, Logger::ProgName]
)
end
有谁知道我能做些什么来阻止日志标题?我在这里使用 Ruby 1.8.7 302 和 Rails 2.3.5。简单地忽略仓库端的 cmets 是不可能的,因为我无法控制那里的代码,而且如果日志行出现问题,简单地忽略它似乎是有风险的。
有人知道允许这样做的记录器吗?您认为使用普通文件并将其写入文件是个好主意吗?
提前致谢, 汤米
【问题讨论】: