我开始学习Ruby on Rails,我面临着命令日志的问题。
我正在使用命令提示符启动服务器。
我的Ruby版本是:2.7
我的Rails版本是:7.0
我想关闭或隐藏不必要的日志。
日志示例:
Post Load (0.5ms) SELECT "posts".* FROM "posts" WHERE "posts"."author_id" = $1 ORDER BY "posts"."created_at" DESC LIMIT $2 [["author_id", 3], ["LIMIT", 3]]
Could not log "sql.active_record" event. Encoding::CompatibilityError: incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string) [
"C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/activesupport-7.0.4/lib/active_support/backtrace_cleaner.rb:96:in `sub'",
"C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/activesupport-7.0.4/lib/active_support/backtrace_cleaner.rb:96:in `block in add_gem_filter'",
"C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/activesupport-7.0.4/lib/active_support/backtrace_cleaner.rb:109:in `block (2 levels) in filter_backtrace'",
"C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/activerecord-7.0.4/lib/active_record/log_subscriber.rb:144:in `each'",
"C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/activerecord-7.0.4/lib/active_record/log_subscriber.rb:144:in `each'",
"C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/activerecord-7.0.4/lib/active_record/log_subscriber.rb:144:in `each'",
"C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/activerecord-7.0.4/lib/active_record/log_subscriber.rb:144:in `each'",
"C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/activerecord-7.0.4/lib/active_record/log_subscriber.rb:144:in `first'",
"C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/activerecord-7.0.4/lib/active_record/log_subscriber.rb:144:in `extract_query_source_location'",
"C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/activerecord-7.0.4/lib/active_record/log_subscriber.rb:136:in `log_query_source'",
"C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/activerecord-7.0.4/lib/active_record/log_subscriber.rb:131:in `debug'",
"C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/activerecord-7.0.4/lib/active_record/log_subscriber.rb:71:in `sql'",
"C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/activesupport-
字符串
我试着在网上找到解决方案,但我没有找到任何可以帮助我的东西。
1条答案
按热度按时间owfi6suc1#
要关闭或隐藏Rails应用中不必要的日志,您可以在开发环境配置文件(通常位于
config/environments/development.rb
)中修改日志级别。您可以将日志级别设置为“警告”或“错误”,以仅显示警告和错误,也可以将其设置为“致命”,以仅显示致命错误。
例如,可以将以下行添加到
development.rb
文件中:字符串
或者,您可以使用Rails日志记录器选择性地只记录某些消息,而不是关闭所有日志。您可以使用
logger.debug
、logger.info
、logger.warn
、logger.error
和logger.fatal
方法在不同级别记录消息。例如,您可以将以下行添加到代码中,以便仅记录“错误”级别或更高级别的消息:
您还可以使用
logger.tagged
方法向日志消息添加标记,这样可以更容易地过滤和搜索日志。例如,您可以将以下行添加到代码中,以记录带有“sql”标记的消息:
然后,您可以使用Rails日志过滤器在日志中只显示带有“sql”标记的消息。
例如,可以将以下行添加到
development.rb
文件中:这将只显示日志中带有“request_id”和“sql”标记的日志消息。
还可以使用Rails日志过滤器从日志中排除某些消息。
例如,可以将以下行添加到
development.rb
文件中:这将从日志中排除带有“sql.active_record”标记的日志消息。
通过使用日志级别和日志筛选器,您可以自定义日志,以便仅显示所需的信息并隐藏不必要的日志消息。