1
我有很多记录器写入我的应用程序中的不同文件。我试图添加在应用程序运行时截断该文件的功能。这里是我有:截断打开os.File(访问被拒绝)
type Resource struct {
Logger *ResourceLogger
// other stuff pertaining to my resource...
}
func (r *Resource) SetLogger(logPath string) {
path := logPath + r.Name + ".log"
f, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0666)
if err != nil {
log.Fatalf("Unable to open log file '%v'", path)
}
r.Logger = &ResourceLogger{log.New(f, "", log.Ldate|log.Ltime), f}
}
type ResourceLogger struct {
*log.Logger
LogFile *os.File
}
这使我可以登录到许多文件,轻松一个资源。但是,当我尝试使用Resource.Logger.LogFile.Truncate(0)时,我得到一个拒绝访问错误。
也许一个文件事件观察在https://github.com/ActiveState/tail/tree/master/watch /blob/master/tail.go#L265-L303可以提供帮助吗? – VonC 2014-08-27 18:56:03
很好,谢谢!我会尽快研究。 – kwolfe 2014-08-27 19:07:39