2024-02-10 19:44:55 +03:00
|
|
|
import Foundation
|
|
|
|
|
import os.log
|
|
|
|
|
|
2025-10-06 16:04:49 +03:00
|
|
|
private let subsystemIdentifier = Bundle.main.bundleIdentifier ?? "org.amnezia.AmneziaVPN"
|
|
|
|
|
private let wireGuardSystemLogger = Logger(subsystem: subsystemIdentifier, category: "WireGuard")
|
|
|
|
|
private let openVPNSystemLogger = Logger(subsystem: subsystemIdentifier, category: "OpenVPN")
|
|
|
|
|
private let xraySystemLogger = Logger(subsystem: subsystemIdentifier, category: "Xray")
|
|
|
|
|
private let networkExtensionLogger = Logger(subsystem: subsystemIdentifier, category: "NetworkExtension")
|
|
|
|
|
|
|
|
|
|
private func logToSystem(_ logger: Logger, type: OSLogType, prefix: String, title: String, message: String) {
|
|
|
|
|
let combinedTitle: String
|
|
|
|
|
if title.isEmpty {
|
|
|
|
|
combinedTitle = prefix
|
|
|
|
|
} else {
|
|
|
|
|
combinedTitle = "\(prefix): \(title)"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
switch type {
|
|
|
|
|
case .debug:
|
|
|
|
|
if combinedTitle.isEmpty {
|
|
|
|
|
logger.debug("\(message, privacy: .public)")
|
|
|
|
|
} else {
|
|
|
|
|
logger.debug("\(combinedTitle, privacy: .public) \(message, privacy: .public)")
|
|
|
|
|
}
|
|
|
|
|
case .info:
|
|
|
|
|
if combinedTitle.isEmpty {
|
|
|
|
|
logger.info("\(message, privacy: .public)")
|
|
|
|
|
} else {
|
|
|
|
|
logger.info("\(combinedTitle, privacy: .public) \(message, privacy: .public)")
|
|
|
|
|
}
|
|
|
|
|
case .error:
|
|
|
|
|
if combinedTitle.isEmpty {
|
|
|
|
|
logger.error("\(message, privacy: .public)")
|
|
|
|
|
} else {
|
|
|
|
|
logger.error("\(combinedTitle, privacy: .public) \(message, privacy: .public)")
|
|
|
|
|
}
|
|
|
|
|
case .fault:
|
|
|
|
|
if combinedTitle.isEmpty {
|
|
|
|
|
logger.fault("\(message, privacy: .public)")
|
|
|
|
|
} else {
|
|
|
|
|
logger.fault("\(combinedTitle, privacy: .public) \(message, privacy: .public)")
|
|
|
|
|
}
|
|
|
|
|
default:
|
|
|
|
|
if combinedTitle.isEmpty {
|
|
|
|
|
logger.log("\(message, privacy: .public)")
|
|
|
|
|
} else {
|
|
|
|
|
logger.log("\(combinedTitle, privacy: .public) \(message, privacy: .public)")
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-20 18:35:36 +03:00
|
|
|
public func wg_log(_ type: OSLogType, title: String = "", staticMessage: StaticString) {
|
2025-10-06 16:04:49 +03:00
|
|
|
let stringMessage = String(describing: staticMessage)
|
|
|
|
|
logToSystem(wireGuardSystemLogger, type: type, prefix: "WG", title: title, message: stringMessage)
|
|
|
|
|
neLog(type, title: "WG: \(title)", message: stringMessage)
|
2024-02-10 19:44:55 +03:00
|
|
|
}
|
|
|
|
|
|
2024-03-20 18:35:36 +03:00
|
|
|
public func wg_log(_ type: OSLogType, title: String = "", message: String) {
|
2025-10-06 16:04:49 +03:00
|
|
|
logToSystem(wireGuardSystemLogger, type: type, prefix: "WG", title: title, message: message)
|
2024-05-17 18:17:08 +07:00
|
|
|
neLog(type, title: "WG: \(title)", message: message)
|
2024-02-10 19:44:55 +03:00
|
|
|
}
|
|
|
|
|
|
2024-03-20 18:35:36 +03:00
|
|
|
public func ovpnLog(_ type: OSLogType, title: String = "", message: String) {
|
2025-10-06 16:04:49 +03:00
|
|
|
logToSystem(openVPNSystemLogger, type: type, prefix: "OVPN", title: title, message: message)
|
2024-05-17 18:17:08 +07:00
|
|
|
neLog(type, title: "OVPN: \(title)", message: message)
|
2024-03-20 18:35:36 +03:00
|
|
|
}
|
2024-02-10 19:44:55 +03:00
|
|
|
|
2024-06-30 12:19:38 +03:00
|
|
|
public func xrayLog(_ type: OSLogType, title: String = "", message: String) {
|
2025-10-06 16:04:49 +03:00
|
|
|
logToSystem(xraySystemLogger, type: type, prefix: "XRAY", title: title, message: message)
|
2024-06-30 12:19:38 +03:00
|
|
|
neLog(type, title: "XRAY: \(title)", message: message)
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-20 18:35:36 +03:00
|
|
|
public func neLog(_ type: OSLogType, title: String = "", message: String) {
|
2025-10-06 16:04:49 +03:00
|
|
|
logToSystem(networkExtensionLogger, type: type, prefix: "NE", title: title, message: message)
|
2024-03-20 18:35:36 +03:00
|
|
|
Log.log(type, title: "NE: \(title)", message: message)
|
2024-02-10 19:44:55 +03:00
|
|
|
}
|