defmodule FileLogger do use Timex def log(request, response, config, processing_start, processing_end) do if Application.get_env(:NDCEx, :enable_logger) do processing_time = Time.diff(processing_end, processing_start, :milliseconds) response_time = Time.diff(Time.now, processing_end, :milliseconds) status = create_dir {{year, mon, day}, {hh, mm, ss}} = :os.timestamp |> :calendar.now_to_datetime datetime = "#{year}-#{mon}-#{day}-#{hh}-#{mm}-#{ss}" filename = "logs/#{config[:label]}.log" content = if File.exists?(filename), do: filename |> File.read!, else: "" case File.open filename, [:write] do {:ok, file} -> s = " \n\n #{request} \n\n #{response}" IO.binwrite file, s File.close file {:error, reason} -> IO.inspect reason end end end def log_request(xml) do #if Application.get_env(:NDCEx, :enable_logger) do {{year, mon, day}, {hh, mm, ss}} = :os.timestamp |> :calendar.now_to_datetime filename = "#{year}-#{mon}-#{day}-#{hh}-#{mm}-#{ss}.log" case File.open filename, [:write] do {:ok, file} -> File.open filename, [:write] IO.binwrite file, xml File.close file filename {:error, reason} -> IO.inspect reason end #end end def log_response(filename, xml) do case File.open filename, [:write] do {:ok, file} -> IO.binwrite file, xml <> "\n Response: \n\n" <> xml File.close file {:error, reason} -> IO.inspect reason end end defp create_dir, do: File.mkdir("logs") end