如何在Ruby中创建日志文件的通用路径
在这里,我使用Dir::pwd在目录的当前路径下创建logs文件夹。但是我想改变它,从任何其他机器上运行的配置文件中选择目录路径如何在Ruby中创建日志文件的通用路径,ruby,logging,Ruby,Logging,在这里,我使用Dir::pwd在目录的当前路径下创建logs文件夹。但是我想改变它,从任何其他机器上运行的配置文件中选择目录路径 date_directory= "#{Dir::pwd}/logs/#{DateHelper.getDirectoryYearStamp}/#{DateHelper.getDirectoryMonthStamp}/#{DateHelper.getDirectoryDateStamp}/" FileUtils.mkdir_p(date_directo
date_directory= "#{Dir::pwd}/logs/#{DateHelper.getDirectoryYearStamp}/#{DateHelper.getDirectoryMonthStamp}/#{DateHelper.getDirectoryDateStamp}/"
FileUtils.mkdir_p(date_directory) unless Dir.exists?(date_directory)
我厌倦了给出绝对路径,它很有效。但是,如何通过传递相对路径来创建目录?您已经准备好使用相对路径,通用解决方案也是如此,当前文件夹的子文件夹是相对位置。您发布的代码有效吗?但在你的问题中,你提到了配置文件,这就是你想要的吗?什么样的文件?yaml、ini或简单文本文件的名称? 如果是一个简单的文本文件,你可以用它来做
path = File.read("#{File.dirname(__FILE__)}/path.txt")
编辑:根据您的评论,以下代码片段将每天在/some/x/y/z中创建一个日志文件
文件夹
在文件“C:\some\x\y\z\logs.txt”中给出
相对于什么?去现在的地方?因此,只需“logs/…”或“/logs/…”而不是当前工作目录路径Dir::pwd,我想获取路径direcotry的用户输入。因此,您需要遍历用户目录,读取其中的配置文件,在其中找到带有path和mkdir的字符串路径。对吗?其实并不难:)谢谢彼得。请看,我想选择一些路径,如$path='some/x/y/z',然后在此路径下创建目录。。因此,不需要像$path='C:/some/x/y/z'那样给出根路径。
require 'logger'
$log = Logger.new("/some/x/y/z/logs.txt", 'daily' )
$log.info "teststring"
# Logfile created on 2013-04-05 13:17:27 +0200 by logger.rb/31641
I, [2013-04-05T13:20:19.811837 #3300] INFO -- : teststring