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