S'il s'agit de SwiftLog, sortie Xcode Output, il sera couvert en ajoutant une extension sans utiliser le backend

SwiftLog https://github.com/apple/swift-log

Paquet Swift.

Extension

import Logging

extension Logger {
    static var level = Logger.Level.info
    
    init(function: String = #function) {
        self.init(label: function)
        self.logLevel = Logger.level
    }
    
    func trace(_ message: String = "" , function: String = #function, line: Int = #line) {
        self.trace(Logger.Message(stringLiteral: String("[\(function):\(line)] \(message)")))
    }

    func debug(_ message: String = "" , function: String = #function, line: Int = #line) {
        self.debug(Logger.Message(stringLiteral: String("[\(function):\(line)] \(message)")))
    }

    func info(_ message: String = "" , function: String = #function, line: Int = #line) {
        self.info(Logger.Message(stringLiteral: String("[\(function):\(line)] \(message)")))
    }

    func notice(_ message: String = "" , function: String = #function, line: Int = #line) {
        self.notice(Logger.Message(stringLiteral: String("[\(function):\(line)] \(message)")))
    }

    func warning(_ message: String = "" , function: String = #function, line: Int = #line) {
        self.warning(Logger.Message(stringLiteral: String("[\(function):\(line)] \(message)")))
    }

    func error(_ message: String = "" , function: String = #function, line: Int = #line) {
        self.error(Logger.Message(stringLiteral: String("[\(function):\(line)] \(message)")))
    }

    func critical(_ message: String = "" , function: String = #function, line: Int = #line) {
        self.critical(Logger.Message(stringLiteral: String("[\(function):\(line)] \(message)")))
    }
}

Example

import UIKit
import Logging

class ViewController: UIViewController {

    let logger = Logger()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        logger.info()
        logger.info("start")
 :
 :
 :

Recommended Posts

S'il s'agit de SwiftLog, sortie Xcode Output, il sera couvert en ajoutant une extension sans utiliser le backend
S'il est automatiquement mis à jour sur le tableau de bord de Grafana, il se déconnectera sans autorisation lorsque la charge d'E / S du serveur devient élevée → Résolu en modifiant la base de données à utiliser à partir de SQLite3