RotatingFileWriter
RotatingFileWriter is a simple write dispatcher. It opens file
on the basis of strftime pattern and current time and automatically
reopens it when pattern starts to interpolate into new name.
Example
Basic usage:
{:ok, writer} = RotatingFileWriter.start_link({"log/%F-%H.log", "Europe/Moscow"})
RotatingFileWriter.write(writer, "some log record")
# ...
RotatingFileWriter.write(writer, "some log record")
RotatingFileWriter.stop(writer)
Advanced usage:
{:ok, writer} = RotatingFileWriter.start_link(
fn(time) ->
Timex.format!(time, "log/{ISOweek-day}.log")
end, # Custom file name generating function
mode: [:write, :append, :sync], # Custom file open mode
gen_server_opts: [name: RotatingLog], # GenServer options
check_interval: 10000 # Custom interval of checking file name change, ms
)
RotatingFileWriter.write(writer, "some log record")
current_file_name = RotatingFileWriter.file_name(writer)
RotatingFileWriter.reopen(writer)
RotatingFileWriter.stop(writer)
Installation
The package can be installed as:
-
Add
rotating_file_writerto your list of dependencies inmix.exs:
```elixir
def deps do
[{:rotating_file_writer, "~> 0.1.0"}]
end
```-
Ensure
rotating_file_writeris started before your application:
```elixir
def application do
[applications: [:rotating_file_writer]]
end
```License
This software is licensed under MIT License.