Current section

Files

Jump to
ndc_ex_sdk lib file_logger.ex
Raw

lib/file_logger.ex

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 = "<!-- ProviderName: #{config[:label]} | ResponseTime: #{response_time} | ProcessingTime: #{processing_time} --> \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