Move "No Change" Log Messages to INFO Level

Proposal:

The "Skipping file X; no changes" messages should appear under the INFO logging level rather than the DEBUG level.

Status Quo:

Currently, the only way to get these messages is to use the DEBUG level, which includes a LOT of extra information. In fact, for EACH unchanged file, there are two log messages under DEBUG:

  1. "File X has no changes; skipping"
  2. "Checksum matches (1239592042223429492301)"

Reasoning:

In my app, I'd like rClone to report the files it thinks have NOT changed so that I can parse that information and update my UI appropriately. Parsing millions of extra messages from DEBUG is wasteful.

Asking "Which files have not changed?" fits well with the INFO level of verbosity. This level should provide very detailed information about what rClone is doing. And since this level already logs every transfer that takes place, it makes sense that it should also log every transfer that did not NEED to take place—they're two sides of the same coin.

Ask

Before I open a GitHub issue, I'd like input. Is this a reasonable request? Is there a reason these messages were left out of INFO? Thanks.

hi,

sorry, not understanding the logic for that.

as per the docs, INFO"
It outputs information about each transfer and prints stats once a minute by default."

given your app is doing that, how is that a problem that would require a change to rclone?

i can assure you that give the huge backlog of open issues and PR,
and that you have a simple workaround, this would not be implemented in a timely manner and most likely never implemented.

of course, you are welcome to open an issue at github.
who knows there might be enough fellow rcloners who would want that.

i also have an app that parses the output of rclone and 7zip, fastcopy and VSS.
the app parses the log file of each app, using regex, removes what i would not want to see and then emails the summary logs to me

Hi Bryan,

I makes good sense in my use case (an ordinary sync), otherwise I would have to filter out app. 99,97% of the lines in my log files - or implement a hack like below.

I see you make software development tools.

Did you consider other alternatives, e.g. how easy it would be to establish an rclone development environment by following the contribution guide: https://github.com/rclone/rclone/blob/master/CONTRIBUTING.md#submitting-a-new-feature-or-bug-fix

and then add something like this to the build script of your app:

sed /fs.Debugf(src, "Unchanged skipping")/fs.Infof(src, "Unchanged skipping")/ fs/operations.go
go build
1 Like

@Ole Thanks! I’ve already assembled a custom build of rClone to change the logged information—both for skipped files and to vastly reduce the information sent with “stats” in JSON mode (JSON parsing is slow).

In general, I greatly prefer using official releases rather than custom forks, which is why I asked about this here.

I do see the reverse side, where folks using INFO would have a bunch of log messages they aren’t interested in. That’s a fair point.

I suppose an ideal solution would be something like the “log-format” option, where you could pass a list of the type of log messages you’re interested in. That would provide more granular control than the log levels. There’s already a slew of log customization options, though, so I’m sure the appetite for more of them is slim!

1 Like

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.