Skip to content

Comments

New Log system#150

Merged
marinofaggiana merged 54 commits intomainfrom
log
Jun 12, 2025
Merged

New Log system#150
marinofaggiana merged 54 commits intomainfrom
log

Conversation

@marinofaggiana
Copy link
Member

@marinofaggiana marinofaggiana commented Jun 9, 2025

Faced with the difficulty of managing log reading, I completely revised the log routine.

I introduced 4 types of logs: disabled, trace, normal, verbose.

Trace is the most interesting, example: (only information is displayed quickly for quick understanding, the [NKLOG] prefix is used for the filter in the debug console.)

Screenshot 2025-06-09 alle 11 04 29

Normal (some more details for the network)

Screenshot 2025-06-09 alle 11 05 34

Verbose (all)

Screenshot 2025-06-09 alle 11 06 40

in the log.txt file the icons are omitted:
Simulator Screenshot - iPhone 16 - 2025-06-09 at 11 08 10

Now the logs are in the app's documents directory under the Logs directory
Simulator Screenshot - iPhone 16 - 2025-06-09 at 11 20 20

every day there is the "logrotate" with the date (the log.txt is always today's one, then renamed)

CODE:
NextcloudKit.configureLogger(logLevel: (NCBrandOptions.shared.disable_log ? .disabled : NCKeychain().log))
### Use:

nkLog(debug: "bye bye")

nkLog(tag: self.global.logTagTask, emonji: .success, message: "Processing task completed with \(numTransfers) transfers")

/// Public logging helpers for apps using the NextcloudKit library.
/// These functions internally use `NKLogFileManager.shared`.

@inlinable
public func nkLog(debug message: String) {
    NKLogFileManager.shared.writeLog(debug: message)
}

@inlinable
public func nkLog(info message: String) {
    NKLogFileManager.shared.writeLog(info: message)
}

@inlinable
public func nkLog(warning message: String) {
    NKLogFileManager.shared.writeLog(warning: message)
}

@inlinable
public func nkLog(error message: String) {
    NKLogFileManager.shared.writeLog(error: message)
}

@inlinable
public func nkLog(network message: String) {
    NKLogFileManager.shared.writeLog(network: message)
}

/// Logs a custom tagged message.
/// - Parameters:
///   - tag: A custom uppercase tag, e.g. \"PUSH\", \"SYNC\", \"AUTH\".
///   - typeTag: the type tag .info, .debug, .warning, .error, .success ..
///   - message: The message to log.
@inlinable
public func nkLog(tag: String, emonji: NKLogTagEmoji  = .debug, message: String) {
    NKLogFileManager.shared.writeLog(tag: tag, emonji: emonji, message: message)
}

Note. in the library all network activity are logged on NKMonitor

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
i2h3
i2h3 previously requested changes Jun 11, 2025
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
@marinofaggiana marinofaggiana requested a review from i2h3 June 11, 2025 14:54
@marinofaggiana marinofaggiana dismissed i2h3’s stale review June 11, 2025 14:55

ok, good, look the new code

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
@marinofaggiana marinofaggiana requested a review from i2h3 June 12, 2025 08:11
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
@marinofaggiana marinofaggiana merged commit 33b8c01 into main Jun 12, 2025
4 checks passed
@github-project-automation github-project-automation bot moved this from 🏗️ In progress to ☑️ Done in 🤖 🍏 Mobile clients team Jun 12, 2025
@marinofaggiana marinofaggiana deleted the log branch June 12, 2025 15:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

2 participants