题
我通过RACK运行的屈应用程式。
要该文件不活动记录到日志中?此外,我怎么可以设置日志文件的路径?
解决方案
这取决于。许多开发人员定义它们的应用程序的日志文件到应用程序/ servername.log或者只是其中机架应用被加载的电流路径。
是你可以改变它的路径。
通常你会得到一个config.ru文件的东西,如:
log = File.new("sinatra.log", "a+") $stdout.reopen(log) $stderr.reopen(log)
和/或
configure do LOGGER = Logger.new("sinatra.log") enable :logging, :dump_errors set :raise_errors, true end
在这种情况下,日志文件位于下APPDIR / sinatra.log。但是,请记住这个代码可以在机架上的应用程序在任何地方,所以请寻求在应用程序目录下的“日志”。
$ cd projectname $ grep -ri 'log' *
有乐趣,并张贴在这里您config.ru和/或mainprojectfile.rb。
其他提示
LOGGER = Logger.new("sinatra.log")
在 @该生产线包括的回答上面没有为我工作。
然而,另一种列出这里(沿与我工作一些有用的解释),测试用红宝石2.5.3和2.0.1屈
有关的附加信息,即替代方法是基于在屈配方呈现的结构>
在object_id
最初是相同的,但它是更好地分配给$stderr
。这也让你打开返回流至其当初与STDERR
其中:
$ irb
>> $stderr.object_id == STDERR.object_id
=> true
同一个对象,现在。发送它别处,
>> $stderr = File.open('/tmp/foo', 'w')
=> #<File:/tmp/foo>
>> $stderr.puts "Uh-oh, foo"
=> nil
>> $stderr.flush # if you want to verify its output
=> #<File:/tmp/foo>
>> $stderr.object_id == STDERR.object_id
=> false
和$stderr
STDERR
指不同的对象。 STDERR
仍然流发送到终端这里,
>> STDERR.puts "Uh-oh, original STDERR"
Uh-oh, original STDERR
=> nil
恢复$stderr
,
>> $stderr = STDERR
=> #<IO:0x106fddb88>
>> $stderr.object_id == STDERR.object_id
=> true
和我们回来了!
不隶属于 StackOverflow