Sha256: 022216f0a0e9ddd609fc18e6c6cd55a86db11dedc23b10a3085ccb6a8bf1d454
Contents?: true
Size: 1.83 KB
Versions: 2
Compression:
Stored size: 1.83 KB
Contents
* 自动记录 SQL 日志和 REPL 输入历史 如果希望 Arql 可以自动记录 SQL 日志和 REPL 输入历史,可以: 创建目录 =~/.arql.d/logs= 创建一个文件 =~/.arql.d/sql_log.rb= ,内容如下: #+BEGIN_SRC ruby unless Arql::App.config[:append_sql] log_root_dir = File.expand_path('~/.arql.d/logs') log_dir = "#{log_root_dir}/%s" % Arql::App.env FileUtils.mkdir_p(log_dir) now = Time.now log_file = "#{log_dir}/%s.%s.%s.log" % [Time.now.strftime('%Y_%m%d_%H%M%S'), `hostname -s`.chomp.downcase, Process.pid] Arql::App.config[:append_sql] = log_file lfile = File.new(log_file, 'a') lfile.sync = true InputLogger = Logger.new(lfile) module Readline class << self alias_method :original_readline, :readline def readline(*args) Readline.original_readline(*args).tap do |user_input| InputLogger.info(user_input) end end end end end #+END_SRC 然后在 =~/.arql.d/init.rb= 中引入这个文件: #+BEGIN_SRC ruby load(File.absolute_path(File.dirname(__FILE__) + "/sql_log.rb")) #+END_SRC 这样就可以在 =~/.arql.d/logs= 目录下看到 SQL 日志和 REPL 输入历史了。 示例: #+BEGIN_EXAMPLE I, [2024-04-07T17:12:00.530341 #20440] INFO -- : P.count D, [2024-04-07T17:12:00.577305 #20440] DEBUG -- : Post Count (22.6ms) SELECT COUNT(*) FROM `post` I, [2024-04-07T17:12:02.879312 #20440] INFO -- : P.all.t D, [2024-04-07T17:12:02.960014 #20440] DEBUG -- : Post Load (64.1ms) SELECT `post`.* FROM `post` I, [2024-04-07T17:12:54.721861 #20440] INFO -- : P.pluck(:gender) D, [2024-04-07T17:12:54.756435 #20440] DEBUG -- : Post Pluck (28.0ms) SELECT `post`.`gender` FROM `post` #+END_EXAMPLE
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
arql-0.3.31 | sql-log-zh_CN.org |
arql-0.3.30 | sql-log-zh_CN.org |