mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-07-25 13:45:20 +00:00
Overloading .debug/.error for ‘.logSecurityEvent’
Search/Replace Strategies: 1. Search regex: `SecureLogger\.logSecurityEvent\(\s*(.*?),\s*level:\s*\.(\w+)\s*\)` Replace regex: `SecureLogger.$2($1)` Sample input: `SecureLogger.logSecurityEvent(.authenticationFailed(peerID: peerID), level: .warning)` Sample output: `SecureLogger.warning(.authenticationFailed(peerID: peerID))` --- 2. Search regex: `SecureLogger\.logSecurityEvent\(\s*(.*?)\s*\)` Replace regex: `SecureLogger.info($1)` (`info` is the default level) Sample input: `SecureLogger.logSecurityEvent(.handshakeStarted(peerID: peerID))` Sample output: `SecureLogger.info(.handshakeStarted(peerID: peerID))`
This commit is contained in:
@@ -133,6 +133,24 @@ final class SecureLogger {
|
||||
log(message(), category: category, level: .error, file: file, line: line, function: function)
|
||||
}
|
||||
|
||||
// MARK: Security Event Logging
|
||||
|
||||
static func debug(_ event: SecurityEvent, file: String = #file, line: Int = #line, function: String = #function) {
|
||||
logSecurityEvent(event, level: .debug, file: file, line: line, function: function)
|
||||
}
|
||||
|
||||
static func info(_ event: SecurityEvent, file: String = #file, line: Int = #line, function: String = #function) {
|
||||
logSecurityEvent(event, level: .info, file: file, line: line, function: function)
|
||||
}
|
||||
|
||||
static func warning(_ event: SecurityEvent, file: String = #file, line: Int = #line, function: String = #function) {
|
||||
logSecurityEvent(event, level: .warning, file: file, line: line, function: function)
|
||||
}
|
||||
|
||||
static func error(_ event: SecurityEvent, file: String = #file, line: Int = #line, function: String = #function) {
|
||||
logSecurityEvent(event, level: .error, file: file, line: line, function: function)
|
||||
}
|
||||
|
||||
/// Log errors with context
|
||||
static func error(_ error: Error, context: @autoclosure () -> String, category: OSLog = .noise,
|
||||
file: String = #file, line: Int = #line, function: String = #function) {
|
||||
@@ -147,21 +165,6 @@ final class SecureLogger {
|
||||
#endif
|
||||
}
|
||||
|
||||
/// Log a security event
|
||||
static func logSecurityEvent(_ event: SecurityEvent, level: LogLevel = .info,
|
||||
file: String = #file, line: Int = #line, function: String = #function) {
|
||||
guard shouldLog(level) else { return }
|
||||
let location = formatLocation(file: file, line: line, function: function)
|
||||
let message = "\(location) \(event.message)"
|
||||
|
||||
#if DEBUG
|
||||
os_log("%{public}@", log: .security, type: level.osLogType, message)
|
||||
#else
|
||||
// In release, use private logging to prevent sensitive data exposure
|
||||
os_log("%{private}@", log: .security, type: level.osLogType, message)
|
||||
#endif
|
||||
}
|
||||
|
||||
// MARK: - Private Helpers
|
||||
|
||||
/// Log general messages with automatic sensitive data filtering
|
||||
@@ -181,6 +184,21 @@ final class SecureLogger {
|
||||
#endif
|
||||
}
|
||||
|
||||
/// Log a security event
|
||||
private static func logSecurityEvent(_ event: SecurityEvent, level: LogLevel = .info,
|
||||
file: String, line: Int, function: String) {
|
||||
guard shouldLog(level) else { return }
|
||||
let location = formatLocation(file: file, line: line, function: function)
|
||||
let message = "\(location) \(event.message)"
|
||||
|
||||
#if DEBUG
|
||||
os_log("%{public}@", log: .security, type: level.osLogType, message)
|
||||
#else
|
||||
// In release, use private logging to prevent sensitive data exposure
|
||||
os_log("%{private}@", log: .security, type: level.osLogType, message)
|
||||
#endif
|
||||
}
|
||||
|
||||
/// Format location information for logging
|
||||
private static func formatLocation(file: String, line: Int, function: String) -> String {
|
||||
let fileName = (file as NSString).lastPathComponent
|
||||
|
||||
Reference in New Issue
Block a user