Ruby on rails web项目中的单个或多个记录器实例
我正在我的项目中构建一个日志系统,这是一个基于Sinatra的Ruby Web应用程序,类似于Rails 我在Github上引用了很多日志框架,比如sinatra/logger、日志、语义日志,我还看到了Rails的一些用法 许多日志框架写我们应该为每个类创建许多日志实例,以便在调试时由每个类单独控制日志级别,我不知道这有什么好处。我认为,通过从配置文件读取日志级别,就可以动态更改日志级别 当我开发android项目时,我们使用单个日志实例,所有地方都调用静态方法,如“MyLog.info”,这个解决方案可以让我在一个地方控制和格式化日志,我认为这是一个项目中只创建一个日志实例的好处 另外,我看到了Rails的用法,它也只有一个名为Rails.logger的实例,无论我想在哪里写日志,我都称之为Rails.logger.info“xxxxx”, 这很容易Ruby on rails web项目中的单个或多个记录器实例,ruby-on-rails,ruby,logging,sinatra,Ruby On Rails,Ruby,Logging,Sinatra,我正在我的项目中构建一个日志系统,这是一个基于Sinatra的Ruby Web应用程序,类似于Rails 我在Github上引用了很多日志框架,比如sinatra/logger、日志、语义日志,我还看到了Rails的一些用法 许多日志框架写我们应该为每个类创建许多日志实例,以便在调试时由每个类单独控制日志级别,我不知道这有什么好处。我认为,通过从配置文件读取日志级别,就可以动态更改日志级别 当我开发android项目时,我们使用单个日志实例,所有地方都调用静态方法,如“MyLog.info”,这
如果我为每个类编写许多日志,我应该为日志编写许多重复的代码,我对此表示怀疑,有人能告诉我哪一个更好,或者我如何选择 我不太清楚你要的是什么,因为这句话把我弄糊涂了: 另外,我看到了Rails的用法,它也只有一个名为Rails.logger的实例,无论我想在哪里写日志,我都叫Rails.logger.info“xxxxx”,这很简单
class-AppName
根据以下评论进行编辑:
这实际上取决于应用程序的结构。但是,我以前做过的一种方法是要求所有其他类位于主AppName类的顶部。类似这样的内容:
Dir[“/other class Dir/*.rb”]。每个{文件| require文件}
都可以工作。其他类现在可以访问logger实例。您是在问如何为每个类启用Sinatra登录吗?不,我是在问当我们构建web项目时,我们有两种方法来创建日志:1.为每个类创建多个日志实例2.为所有类只创建一个实例。哪种方法更好?是的,如果您在AppName类中,这是Sinatra::Application的子类,那么您有request.logger,它是通过request传递的。因此logger.info是AppName的实例。但在另一个普通类中,它并没有父类,也并没有logger instance.updated,答案基于您的评论。这取决于应用程序的结构。但是这是实现它的一种方法。谢谢你的回答,那么在什么情况下我们应该只在日志实例上使用,什么时候我们应该为每个类创建多个日志实例?我会说,将它们保持在同一个实例中,除非你需要或要求将它们分开。您可以随时在以后将它们分开:竖起大拇指好的,我将首先使用相同的实例,然后分析是否应该在以后将它们分开。非常感谢。
class AppName < Sinatra::Application
configure do
enable :logging
end
get '/' do
logger.info "Hello world.. This is AppName!"
end
end