rotator

package
v0.0.0-...-8b1022e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 17, 2016 License: Apache-2.0, MIT Imports: 7 Imported by: 0

README

rotator

Build Status Coverage License

Rotator is a file writer which rotates by date and size. Rotator can be used any kind of files since it implments io.Writer.

go get github.com/dozenzaka/rotator

Size rotations

Size based rotator will rotate target file when the size of the file is exceeded. Default size for the rotation is 10MiB. When file is rotated, it will find available id for the file such as rotated.log.5 and rename it.

package main

import(
  "github.com/dogenzaka/rotator"
)

func main() {
  file := rotator.NewSizeRotator("/var/log/rotated.log")
  defer file.Close()
  file.Write([]byte("FIRST TEXT"))
  file.Write([]byte("SECOND TEXT"))
  file.WriteString("THIRD STRING")
}

To configure rotations, set properties of rotator instances.

file := rotator.NewSizeRotator("/var/log/rotated.log")
file.MaxRotation = 999 // Maximum counts of the file rotation. Default is 999
file.RotationSize = int64(1024*1024*10) // Size threashold which cause rotation. Default is 10MiB

Daily rotations

Daily based rotator will rotate target file when the date is changed. When file is rotated, it will rename the file to rotated name such as rotated.log.2014-10-12.

package main

import (
  "github.com/dogenzaka/rotator"
)

func main() {
  file := rotator.NewDailyRotator("/var/log/rotated.log")
  defer file.Close()
  file.Write([]byte("FIRST TEXT"))
  file.Write([]byte("SECOND TEXT"))
  file.WriteString("THIRD STRING")
}

License

rotator is licensed under MIT

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DailyRotator

type DailyRotator struct {
	Now time.Time
	// contains filtered or unexported fields
}

DailyRotator is writer which rotates file by date

func NewDailyRotator

func NewDailyRotator(path string) *DailyRotator

NewDailyRotator creates rotator which writes to the file

func (*DailyRotator) Close

func (r *DailyRotator) Close() error

Close the file

func (*DailyRotator) Write

func (r *DailyRotator) Write(bytes []byte) (n int, err error)

Write binaries to the file. It will rotate files if date is chnaged from last writing.

func (*DailyRotator) WriteString

func (r *DailyRotator) WriteString(str string) (n int, err error)

WriteString writes strings to the file. It will rotate files if date is chnaged from last writing.

type Rotator

type Rotator interface {
	// a Write method, a Close method
	io.WriteCloser
	// WriteString writes strings to the file.
	WriteString(str string) (n int, err error)
}

Rotator interface

type SizeRotator

type SizeRotator struct {
	RotationSize int64 // size threshold of the rotation
	MaxRotation  int   // maximum count of the rotation
	// contains filtered or unexported fields
}

SizeRotator is file writer which rotates files by size

func NewSizeRotator

func NewSizeRotator(path string) *SizeRotator

NewSizeRotator creates new writer of the file

func (*SizeRotator) Close

func (r *SizeRotator) Close() error

Close the file

func (*SizeRotator) Write

func (r *SizeRotator) Write(bytes []byte) (n int, err error)

Write bytes to the file. If binaries exceeds rotation threshold, it will automatically rotate the file.

func (*SizeRotator) WriteString

func (r *SizeRotator) WriteString(str string) (n int, err error)

WriteString writes strings to the file. If binaries exceeds rotation threshold, it will automatically rotate the file.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL