Class: Ruil::Logger
- Inherits:
-
Object
- Object
- Ruil::Logger
- Defined in:
- lib/ruil/logger.rb
Overview
Logger store records as lines in a file. Each line is coded in JSON format.
Constant Summary collapse
- @@file_name =
nil
- @@log_file =
nil
Instance Method Summary collapse
-
#call(env) ⇒ Object
Call the logger.
-
#initialize(app, dir) ⇒ Logger
constructor
Create a new logger.
-
#log_file ⇒ Object
Set the log_file using the current date.
Constructor Details
#initialize(app, dir) ⇒ Logger
Create a new logger.
15 16 17 18 |
# File 'lib/ruil/logger.rb', line 15 def initialize(app, dir) @app = app @dir = dir end |
Instance Method Details
#call(env) ⇒ Object
Call the logger.
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/ruil/logger.rb', line 32 def call(env) request = Rack::Request.new(env) status, header, body = @app.call(env) log_entry = { 'timestamp' => Time.now.to_i, 'status' => status, 'path_info' => request.path_info, 'params' => request.params, 'url' => request.url, 'remote_ip' => request.ip, 'user_agent' => request.user_agent, 'session_id' => request.[:id] } unless request.session[:user].nil? log_entry['user_id'] = request.session[:user][:oid] end log_file << log_entry.to_json + "\n" [status, header, body] end |
#log_file ⇒ Object
Set the log_file using the current date.
21 22 23 24 25 26 27 28 29 |
# File 'lib/ruil/logger.rb', line 21 def log_file file_name = Time.now.strftime(File.join(@dir, '%Y-%m-%d.log')) unless @@file_name == file_name @@file_name = file_name @@log_file.close unless @@log_file.nil? @@log_file = File.new(@@file_name , 'a+') end @@log_file end |