Psiphon-Inc / rotate-safe-writer

An io.Writer implementaion that can handle file rotation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status

Rotate Safe Writer

Makes an io.Writer that is resilient to inode changes (as caused by logrotate, file deletion, etc.)

This can be used anywhere that requires the io.Writer interface to be satisfied (including os.File). See the tests for usage examples

It works by storing the file's inode as it is opened, then checking whether or not the file at the original path still has the same inode value prior to calling File.Write(). If the inode has changed, the file at the original path will be re-opened, the new inode stored, then the write will continue as normal.

About

An io.Writer implementaion that can handle file rotation

License:GNU General Public License v3.0


Languages

Language:Go 100.0%