1
내 애플리케이션의 다른 파일에 많은 로거가 기록됩니다. 응용 프로그램이 실행되는 동안 해당 파일을자를 수있는 기능을 추가하려고합니다. 이 날 많은 파일, 쉽게 자원 당 하나에 로그인 할 수 있습니다open 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 같이 https://github.com/ActiveState/tail에 사용 : 여기에 대한 대략적인 예입니다 /blob/master/tail.go#L265-L303 도움이 될까요? – VonC
아 정말 고마워, 고마워! 나는 이것을 곧 조사 할 것이다. – kwolfe