def self.action(action, status=nil, success=true, description=nil, args={}, detailed_description=nil)
return unless logger
result = success ? "SUCCESS" : "FAILURE"
status = status.nil? ? "unknown" : status.to_s
description = (description || "").strip
detailed_description = (detailed_description || "").strip
time_obj = Time.new
date = time_obj.strftime("%Y-%m-%d")
time = time_obj.strftime("%H:%M:%S")
timestamp = time_obj.to_i.to_s
message = "RESULT=#{result} STATUS=#{status} TIMESTAMP=#{timestamp} DATE=#{date} TIME=#{time} ACTION=#{action} REQ_ID=#{Thread.current[:user_action_log_uuid]}"
auth = " USER_ID=#{Thread.current[:user_action_log_user_id]} LOGIN=#{Thread.current[:user_action_log_identity_id]}"
extra = args.map{|k,v| " #{k}=#{v}"}.join
description = description.to_s.lines.first.strip if description.to_s.lines.count > 1
logger.info("#{message}#{auth}#{extra} #{description}")
unless Rails.env.production?
Rails.logger.add(Logger::DEBUG){ " #{result} ACTION=#{action}#{auth}#{extra} #{description} #{detailed_description}" }
end
end