forked from TrueCloudLab/rclone
Reassign some logging levels
This commit is contained in:
parent
80f53176d9
commit
0366ea39c5
8 changed files with 37 additions and 37 deletions
|
@ -164,7 +164,7 @@ func (f *Fs) shouldRetry(resp *http.Response, err error) (bool, error) {
|
||||||
//
|
//
|
||||||
// HTTP code 403: "403 Forbidden", reponse body: {"message":"Authorization header requires 'Credential' parameter. Authorization header requires 'Signature' parameter. Authorization header requires 'SignedHeaders' parameter. Authorization header requires existence of either a 'X-Amz-Date' or a 'Date' header. Authorization=Bearer"}
|
// HTTP code 403: "403 Forbidden", reponse body: {"message":"Authorization header requires 'Credential' parameter. Authorization header requires 'Signature' parameter. Authorization header requires 'SignedHeaders' parameter. Authorization header requires existence of either a 'X-Amz-Date' or a 'Date' header. Authorization=Bearer"}
|
||||||
if resp.StatusCode == 403 && strings.Contains(err.Error(), "Authorization header requires") {
|
if resp.StatusCode == 403 && strings.Contains(err.Error(), "Authorization header requires") {
|
||||||
fs.Logf(f, "403 \"Authorization header requires...\" error received - retry")
|
fs.Debugf(f, "403 \"Authorization header requires...\" error received - retry")
|
||||||
return true, err
|
return true, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -917,12 +917,12 @@ func (o *Object) readMetaData() (err error) {
|
||||||
func (o *Object) ModTime() time.Time {
|
func (o *Object) ModTime() time.Time {
|
||||||
err := o.readMetaData()
|
err := o.readMetaData()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fs.Logf(o, "Failed to read metadata: %v", err)
|
fs.Debugf(o, "Failed to read metadata: %v", err)
|
||||||
return time.Now()
|
return time.Now()
|
||||||
}
|
}
|
||||||
modTime, err := time.Parse(timeFormat, *o.info.ModifiedDate)
|
modTime, err := time.Parse(timeFormat, *o.info.ModifiedDate)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fs.Logf(o, "Failed to read mtime from object: %v", err)
|
fs.Debugf(o, "Failed to read mtime from object: %v", err)
|
||||||
return time.Now()
|
return time.Now()
|
||||||
}
|
}
|
||||||
return modTime
|
return modTime
|
||||||
|
|
2
b2/b2.go
2
b2/b2.go
|
@ -490,7 +490,7 @@ func (f *Fs) list(dir string, level int, prefix string, limit int, hidden bool,
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if !strings.HasPrefix(file.Name, f.root) {
|
if !strings.HasPrefix(file.Name, f.root) {
|
||||||
fs.Logf(f, "Odd name received %q", file.Name)
|
fs.Debugf(f, "Odd name received %q", file.Name)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
remote := file.Name[len(f.root):]
|
remote := file.Name[len(f.root):]
|
||||||
|
|
|
@ -275,7 +275,7 @@ func Run(Retry bool, showStats bool, cmd *cobra.Command, f func() error) {
|
||||||
log.Fatalf("Failed to %s: %v", cmd.Name(), err)
|
log.Fatalf("Failed to %s: %v", cmd.Name(), err)
|
||||||
}
|
}
|
||||||
if showStats && (!fs.Config.Quiet || fs.Stats.Errored() || *statsInterval > 0) {
|
if showStats && (!fs.Config.Quiet || fs.Stats.Errored() || *statsInterval > 0) {
|
||||||
fs.Logf(nil, "%s", fs.Stats)
|
fs.Infof(nil, "%s", fs.Stats)
|
||||||
}
|
}
|
||||||
if fs.Config.Verbose {
|
if fs.Config.Verbose {
|
||||||
fs.Debugf(nil, "Go routines at exit %d\n", runtime.NumGoroutine())
|
fs.Debugf(nil, "Go routines at exit %d\n", runtime.NumGoroutine())
|
||||||
|
@ -345,7 +345,7 @@ func initConfig() {
|
||||||
|
|
||||||
// Setup CPU profiling if desired
|
// Setup CPU profiling if desired
|
||||||
if *cpuProfile != "" {
|
if *cpuProfile != "" {
|
||||||
fs.Logf(nil, "Creating CPU profile %q\n", *cpuProfile)
|
fs.Infof(nil, "Creating CPU profile %q\n", *cpuProfile)
|
||||||
f, err := os.Create(*cpuProfile)
|
f, err := os.Create(*cpuProfile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fs.Stats.Error()
|
fs.Stats.Error()
|
||||||
|
@ -362,7 +362,7 @@ func initConfig() {
|
||||||
// Setup memory profiling if desired
|
// Setup memory profiling if desired
|
||||||
if *memProfile != "" {
|
if *memProfile != "" {
|
||||||
defer func() {
|
defer func() {
|
||||||
fs.Logf(nil, "Saving Memory profile %q\n", *memProfile)
|
fs.Infof(nil, "Saving Memory profile %q\n", *memProfile)
|
||||||
f, err := os.Create(*memProfile)
|
f, err := os.Create(*memProfile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fs.Stats.Error()
|
fs.Stats.Error()
|
||||||
|
|
|
@ -929,12 +929,12 @@ func (o *Object) readMetaData() (err error) {
|
||||||
func (o *Object) ModTime() time.Time {
|
func (o *Object) ModTime() time.Time {
|
||||||
err := o.readMetaData()
|
err := o.readMetaData()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fs.Logf(o, "Failed to read metadata: %v", err)
|
fs.Debugf(o, "Failed to read metadata: %v", err)
|
||||||
return time.Now()
|
return time.Now()
|
||||||
}
|
}
|
||||||
modTime, err := time.Parse(timeFormatIn, o.modifiedDate)
|
modTime, err := time.Parse(timeFormatIn, o.modifiedDate)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fs.Logf(o, "Failed to read mtime from object: %v", err)
|
fs.Debugf(o, "Failed to read mtime from object: %v", err)
|
||||||
return time.Now()
|
return time.Now()
|
||||||
}
|
}
|
||||||
return modTime
|
return modTime
|
||||||
|
@ -1103,7 +1103,7 @@ func (o *Object) Remove() error {
|
||||||
func (o *Object) MimeType() string {
|
func (o *Object) MimeType() string {
|
||||||
err := o.readMetaData()
|
err := o.readMetaData()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fs.Logf(o, "Failed to read metadata: %v", err)
|
fs.Debugf(o, "Failed to read metadata: %v", err)
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
return o.mimeType
|
return o.mimeType
|
||||||
|
|
|
@ -287,7 +287,7 @@ func (f *Fs) list(out fs.ListOpts, dir string) {
|
||||||
// This notifies of a deleted object
|
// This notifies of a deleted object
|
||||||
} else {
|
} else {
|
||||||
if len(entry.Path) <= 1 || entry.Path[0] != '/' {
|
if len(entry.Path) <= 1 || entry.Path[0] != '/' {
|
||||||
fs.Logf(f, "dropbox API inconsistency: a path should always start with a slash and be at least 2 characters: %s", entry.Path)
|
fs.Debugf(f, "dropbox API inconsistency: a path should always start with a slash and be at least 2 characters: %s", entry.Path)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -699,7 +699,7 @@ func (o *Object) readMetaData() (err error) {
|
||||||
func (o *Object) ModTime() time.Time {
|
func (o *Object) ModTime() time.Time {
|
||||||
err := o.readMetaData()
|
err := o.readMetaData()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fs.Logf(o, "Failed to read metadata: %v", err)
|
fs.Debugf(o, "Failed to read metadata: %v", err)
|
||||||
return time.Now()
|
return time.Now()
|
||||||
}
|
}
|
||||||
return o.modTime
|
return o.modTime
|
||||||
|
|
|
@ -33,7 +33,7 @@ func startTokenBucket() {
|
||||||
|
|
||||||
if currLimit.bandwidth > 0 {
|
if currLimit.bandwidth > 0 {
|
||||||
tokenBucket = tb.NewBucket(int64(currLimit.bandwidth), 100*time.Millisecond)
|
tokenBucket = tb.NewBucket(int64(currLimit.bandwidth), 100*time.Millisecond)
|
||||||
Logf(nil, "Starting bandwidth limiter at %vBytes/s", &currLimit.bandwidth)
|
Infof(nil, "Starting bandwidth limiter at %vBytes/s", &currLimit.bandwidth)
|
||||||
|
|
||||||
// Start the SIGUSR2 signal handler to toggle bandwidth.
|
// Start the SIGUSR2 signal handler to toggle bandwidth.
|
||||||
// This function does nothing in windows systems.
|
// This function does nothing in windows systems.
|
||||||
|
@ -60,7 +60,7 @@ func startTokenTicker() {
|
||||||
if tokenBucket != nil {
|
if tokenBucket != nil {
|
||||||
err := tokenBucket.Close()
|
err := tokenBucket.Close()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
Logf(nil, "Error closing token bucket: %v", err)
|
Debugf(nil, "Error closing token bucket: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -203,7 +203,7 @@ Elapsed time: %10v
|
||||||
|
|
||||||
// Log outputs the StatsInfo to the log
|
// Log outputs the StatsInfo to the log
|
||||||
func (s *StatsInfo) Log() {
|
func (s *StatsInfo) Log() {
|
||||||
Logf(nil, "%v\n", s)
|
Infof(nil, "%v\n", s)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bytes updates the stats for bytes bytes
|
// Bytes updates the stats for bytes bytes
|
||||||
|
|
|
@ -32,12 +32,12 @@ func CalculateModifyWindow(fs ...Fs) {
|
||||||
Config.ModifyWindow = precision
|
Config.ModifyWindow = precision
|
||||||
}
|
}
|
||||||
if precision == ModTimeNotSupported {
|
if precision == ModTimeNotSupported {
|
||||||
Debugf(f, "Modify window not supported")
|
Infof(f, "Modify window not supported")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Debugf(fs[0], "Modify window is %s", Config.ModifyWindow)
|
Infof(fs[0], "Modify window is %s", Config.ModifyWindow)
|
||||||
}
|
}
|
||||||
|
|
||||||
// HashEquals checks to see if src == dst, but ignores empty strings
|
// HashEquals checks to see if src == dst, but ignores empty strings
|
||||||
|
@ -181,7 +181,7 @@ func equal(src, dst Object, sizeOnly, checkSum bool) bool {
|
||||||
Stats.Error()
|
Stats.Error()
|
||||||
Errorf(dst, "Failed to set modification time: %v", err)
|
Errorf(dst, "Failed to set modification time: %v", err)
|
||||||
} else {
|
} else {
|
||||||
Debugf(src, "Updated modification time in destination")
|
Infof(src, "Updated modification time in destination")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
|
@ -217,10 +217,10 @@ func removeFailedCopy(dst Object) bool {
|
||||||
if dst == nil {
|
if dst == nil {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
Debugf(dst, "Removing failed copy")
|
Infof(dst, "Removing failed copy")
|
||||||
removeErr := dst.Remove()
|
removeErr := dst.Remove()
|
||||||
if removeErr != nil {
|
if removeErr != nil {
|
||||||
Debugf(dst, "Failed to remove failed copy: %s", removeErr)
|
Infof(dst, "Failed to remove failed copy: %s", removeErr)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
|
@ -341,7 +341,7 @@ func Copy(f Fs, dst Object, remote string, src Object) (err error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Debugf(src, actionTaken)
|
Infof(src, actionTaken)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -365,7 +365,7 @@ func Move(fdst Fs, dst Object, remote string, src Object) (err error) {
|
||||||
_, err := doMove(src, remote)
|
_, err := doMove(src, remote)
|
||||||
switch err {
|
switch err {
|
||||||
case nil:
|
case nil:
|
||||||
Debugf(src, "Moved (server side)")
|
Infof(src, "Moved (server side)")
|
||||||
return nil
|
return nil
|
||||||
case ErrorCantMove:
|
case ErrorCantMove:
|
||||||
Debugf(src, "Can't move, switching to copy")
|
Debugf(src, "Can't move, switching to copy")
|
||||||
|
@ -424,7 +424,7 @@ func deleteFileWithBackupDir(dst Object, backupDir Fs) (err error) {
|
||||||
Stats.Error()
|
Stats.Error()
|
||||||
Errorf(dst, "Couldn't %s: %v", action, err)
|
Errorf(dst, "Couldn't %s: %v", action, err)
|
||||||
} else {
|
} else {
|
||||||
Debugf(dst, actioned)
|
Infof(dst, actioned)
|
||||||
}
|
}
|
||||||
Stats.DoneChecking(dst.Remote())
|
Stats.DoneChecking(dst.Remote())
|
||||||
return err
|
return err
|
||||||
|
@ -458,7 +458,7 @@ func deleteFilesWithBackupDir(toBeDeleted ObjectsChan, backupDir Fs) error {
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
Logf(nil, "Waiting for deletions to finish")
|
Infof(nil, "Waiting for deletions to finish")
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
if errorCount > 0 {
|
if errorCount > 0 {
|
||||||
return errors.Errorf("failed to delete %d files", errorCount)
|
return errors.Errorf("failed to delete %d files", errorCount)
|
||||||
|
@ -587,7 +587,7 @@ func readFilesMap(fs Fs, includeAll bool, dir string) (files map[string]Object,
|
||||||
if _, ok := files[remote]; !ok {
|
if _, ok := files[remote]; !ok {
|
||||||
files[remote] = o
|
files[remote] = o
|
||||||
if _, ok := normalised[normalisedRemote]; ok {
|
if _, ok := normalised[normalisedRemote]; ok {
|
||||||
Logf(o, "Warning: File found with same name but different case on %v", o.Fs())
|
Logf(o, "File found with same name but different case on %v", o.Fs())
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Logf(o, "Duplicate file detected")
|
Logf(o, "Duplicate file detected")
|
||||||
|
@ -609,7 +609,7 @@ func readFilesMaps(fdst Fs, fdstIncludeAll bool, fsrc Fs, fsrcIncludeAll bool, d
|
||||||
|
|
||||||
list := func(fs Fs, includeAll bool, pMap *map[string]Object, pErr *error) {
|
list := func(fs Fs, includeAll bool, pMap *map[string]Object, pErr *error) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
Logf(fs, "Building file list")
|
Infof(fs, "Building file list")
|
||||||
files, listErr := readFilesMap(fs, includeAll, dir)
|
files, listErr := readFilesMap(fs, includeAll, dir)
|
||||||
if listErr != nil {
|
if listErr != nil {
|
||||||
Errorf(fs, "Error building file list: %v", listErr)
|
Errorf(fs, "Error building file list: %v", listErr)
|
||||||
|
@ -757,7 +757,7 @@ func Check(fdst, fsrc Fs) error {
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
Logf(fdst, "Waiting for checks to finish")
|
Infof(fdst, "Waiting for checks to finish")
|
||||||
checkerWg.Wait()
|
checkerWg.Wait()
|
||||||
Logf(fdst, "%d differences found", Stats.GetErrors())
|
Logf(fdst, "%d differences found", Stats.GetErrors())
|
||||||
if noHashes > 0 {
|
if noHashes > 0 {
|
||||||
|
@ -1009,7 +1009,7 @@ func dedupeRename(remote string, objs []Object) {
|
||||||
Errorf(o, "Failed to rename: %v", err)
|
Errorf(o, "Failed to rename: %v", err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
Logf(newObj, "renamed from: %v", o)
|
Infof(newObj, "renamed from: %v", o)
|
||||||
} else {
|
} else {
|
||||||
Logf(remote, "Not renaming to %q as --dry-run", newName)
|
Logf(remote, "Not renaming to %q as --dry-run", newName)
|
||||||
}
|
}
|
||||||
|
@ -1145,7 +1145,7 @@ var _ pflag.Value = (*DeduplicateMode)(nil)
|
||||||
// delete all but one or rename them to be different. Only useful with
|
// delete all but one or rename them to be different. Only useful with
|
||||||
// Google Drive which can have duplicate file names.
|
// Google Drive which can have duplicate file names.
|
||||||
func Deduplicate(f Fs, mode DeduplicateMode) error {
|
func Deduplicate(f Fs, mode DeduplicateMode) error {
|
||||||
Logf(f, "Looking for duplicates using %v mode.", mode)
|
Infof(f, "Looking for duplicates using %v mode.", mode)
|
||||||
files := map[string][]Object{}
|
files := map[string][]Object{}
|
||||||
list := NewLister().Start(f, "")
|
list := NewLister().Start(f, "")
|
||||||
for {
|
for {
|
||||||
|
|
16
fs/sync.go
16
fs/sync.go
|
@ -392,7 +392,7 @@ func (s *syncCopyMove) startCheckers() {
|
||||||
// This stops the background checkers
|
// This stops the background checkers
|
||||||
func (s *syncCopyMove) stopCheckers() {
|
func (s *syncCopyMove) stopCheckers() {
|
||||||
close(s.toBeChecked)
|
close(s.toBeChecked)
|
||||||
Logf(s.fdst, "Waiting for checks to finish")
|
Infof(s.fdst, "Waiting for checks to finish")
|
||||||
s.checkerWg.Wait()
|
s.checkerWg.Wait()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -407,7 +407,7 @@ func (s *syncCopyMove) startTransfers() {
|
||||||
// This stops the background transfers
|
// This stops the background transfers
|
||||||
func (s *syncCopyMove) stopTransfers() {
|
func (s *syncCopyMove) stopTransfers() {
|
||||||
close(s.toBeUploaded)
|
close(s.toBeUploaded)
|
||||||
Logf(s.fdst, "Waiting for transfers to finish")
|
Infof(s.fdst, "Waiting for transfers to finish")
|
||||||
s.transfersWg.Wait()
|
s.transfersWg.Wait()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -428,7 +428,7 @@ func (s *syncCopyMove) stopRenamers() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
close(s.toBeRenamed)
|
close(s.toBeRenamed)
|
||||||
Logf(s.fdst, "Waiting for renames to finish")
|
Infof(s.fdst, "Waiting for renames to finish")
|
||||||
s.renamerWg.Wait()
|
s.renamerWg.Wait()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -551,7 +551,7 @@ func (s *syncCopyMove) popRenameMap(hash string) (dst Object) {
|
||||||
// makeRenameMap builds a map of the destination files by hash that
|
// makeRenameMap builds a map of the destination files by hash that
|
||||||
// match sizes in the slice of objects in s.renameCheck
|
// match sizes in the slice of objects in s.renameCheck
|
||||||
func (s *syncCopyMove) makeRenameMap() {
|
func (s *syncCopyMove) makeRenameMap() {
|
||||||
Debugf(s.fdst, "Making map for --track-renames")
|
Infof(s.fdst, "Making map for --track-renames")
|
||||||
|
|
||||||
// first make a map of possible sizes we need to check
|
// first make a map of possible sizes we need to check
|
||||||
possibleSizes := map[int64]struct{}{}
|
possibleSizes := map[int64]struct{}{}
|
||||||
|
@ -584,7 +584,7 @@ func (s *syncCopyMove) makeRenameMap() {
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
Debugf(s.fdst, "Finished making map for --track-renames")
|
Infof(s.fdst, "Finished making map for --track-renames")
|
||||||
}
|
}
|
||||||
|
|
||||||
// tryRename renames a src object when doing track renames if
|
// tryRename renames a src object when doing track renames if
|
||||||
|
@ -614,7 +614,7 @@ func (s *syncCopyMove) tryRename(src Object) bool {
|
||||||
delete(s.dstFiles, dst.Remote())
|
delete(s.dstFiles, dst.Remote())
|
||||||
s.dstFilesMu.Unlock()
|
s.dstFilesMu.Unlock()
|
||||||
|
|
||||||
Debugf(src, "Renamed from %q", dst.Remote())
|
Infof(src, "Renamed from %q", dst.Remote())
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1110,9 +1110,9 @@ func MoveDir(fdst, fsrc Fs) error {
|
||||||
err := fdstDirMove(fsrc)
|
err := fdstDirMove(fsrc)
|
||||||
switch err {
|
switch err {
|
||||||
case ErrorCantDirMove, ErrorDirExists:
|
case ErrorCantDirMove, ErrorDirExists:
|
||||||
Debugf(fdst, "Server side directory move failed - fallback to file moves: %v", err)
|
Infof(fdst, "Server side directory move failed - fallback to file moves: %v", err)
|
||||||
case nil:
|
case nil:
|
||||||
Debugf(fdst, "Server side directory move succeeded")
|
Infof(fdst, "Server side directory move succeeded")
|
||||||
return nil
|
return nil
|
||||||
default:
|
default:
|
||||||
Stats.Error()
|
Stats.Error()
|
||||||
|
|
Loading…
Reference in a new issue