我正在我的项目中构建一个日志系统,这是一个基于Sinatra的Ruby Web App,类似于Rails。
我在Github上引用了很多日志框架,比如sinatra / logger,日志记录,语义记录器,我看到了一些Rails的用法。
许多日志框架写道我们应该为每个类创建许多日志实例,在调试时由每个类单独控制日志级别,我不知道它有什么好处。我认为通过从配置文件中读取日志级别来改变日志级动态就足够了。
当我开发android项目时,我们正在使用单个日志实例,并且所有地方都调用静态方法,如“MyLog.info”,这个解决方案可以让我在一个地方控制和格式化日志,我想这是在项目中只创建一个日志实例的好处。
另外,我看到了Rails的用法,它也只有一个名为Rails.logger的实例,无论我想在哪里写日志,我都称之为Rails.logger.info“xxxxx”, 这很容易。
如果我为每个类写了很多记录器,我应该为日志编写许多重复的代码,我对此表示怀疑,有人能告诉我哪一个更好或者我如何选择。
答案 0 :(得分:0)
不确定你要求的是什么,因为这句话让我感到困惑:
另外,我看到了Rails的用法,它也只有一个名为Rails.logger的实例,无论我想在哪里写日志,我都会调用Rails.logger.info" xxxxx",这很容易
class AppName < Sinatra::Application
configure do
enable :logging
end
get '/' do
logger.info "Hello world.. This is AppName!"
end
end
根据以下评论进行修改:
这实际上取决于您的应用程序的结构。但是,我之前完成它的一种方法是要求所有其他类位于主AppName类的顶部。这样的事情:Dir["./other-class-dir/*.rb"].each {|file| require file}
将起作用。其他类现在可以访问记录器实例。