tinyfile is tiny service library
go get github.com/nc30/tinyfile
tinyfile
support simple pid control and logrotatable file object
package main
import (
"fmt"
"os"
"github.com/nc30/tinyfile"
)
var PidFilePath = "/tmp/test.pid"
func main(){
err := tinyfile.PidSet(PidFilePath)
if err != nil {
fmt.FPrintln(os.Stderr, err)
os.Exit(1)
}
defer tinyfile.PidClean()
/*****
some process
*****/
}
create io.WriteCloser
object at reopen of SIGHUP
package main
import (
"context"
"log"
"os"
"github.com/nc30/tinyfile"
)
var logPath = "/tmp/test.log"
func main() {
// get rotatable io.WriteCloser object
f, err := NewSync(logPath)
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
// close file handler
defer tinyfile.Close()
// set outpu to log
log.SetOutput(f)
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
// start watch signal of SIGHUP
tinyfile.Watch(ctx)
/*****
some process
*****/
}