1
0
mirror of https://github.com/nicoverbruggen/phpmon.git synced 2025-08-07 20:10:08 +02:00

♻️ Added logger class

This commit is contained in:
2021-12-21 17:06:03 +01:00
parent ceb168c6cf
commit e76c6e14e4
23 changed files with 135 additions and 64 deletions

View File

@ -42,8 +42,8 @@ class Actions {
availableVersions: [String],
completed: @escaping () -> Void
) {
print("Switching to \(version) using Valet")
print(valet("use php@\(version)"))
Log.info("Switching to \(version) using Valet")
Log.info(valet("use php@\(version)"))
completed()
}
@ -61,7 +61,7 @@ class Actions {
availableVersions: [String],
completed: @escaping () -> Void
) {
print("Switching to \(version), unlinking all versions...")
Log.info("Switching to \(version), unlinking all versions...")
let group = DispatchGroup()
@ -80,14 +80,14 @@ class Actions {
}
group.notify(queue: .global(qos: .userInitiated)) {
print("All versions have been unlinked!")
print("Linking the new version!")
Log.info("All versions have been unlinked!")
Log.info("Linking the new version!")
let formula = (version == PhpSwitcher.brewPhpVersion) ? "php" : "php@\(version)"
brew("link \(formula) --overwrite --force")
brew("services start \(formula)", sudo: true)
print("The new version has been linked!")
Log.info("The new version has been linked!")
completed()
}
}

View File

@ -0,0 +1,52 @@
//
// Logger.swift
// PHP Monitor
//
// Created by Nico Verbruggen on 21/12/2021.
// Copyright © 2021 Nico Verbruggen. All rights reserved.
//
import Foundation
class Log {
enum Verbosity: Int {
case error = 1,
info = 2,
warning = 3,
performance = 4
public func isApplicable() -> Bool {
return Log.shared.verbosity.rawValue >= self.rawValue
}
}
static var shared = Log()
var verbosity: Verbosity = .info
static func info(_ item: Any) {
if Verbosity.info.isApplicable() {
print(item)
}
}
static func err(_ item: Any) {
if Verbosity.error.isApplicable() {
print(item)
}
}
static func warn(_ item: Any) {
if Verbosity.warning.isApplicable() {
print(item)
}
}
static func perf(_ item: Any) {
if Verbosity.performance.isApplicable() {
print(item)
}
}
}

View File

@ -92,7 +92,7 @@ class PhpExtension {
let file = try? String(contentsOf: path, encoding: .utf8)
if (file == nil) {
print("There was an issue reading the file. Assuming no extensions were found.")
Log.err("There was an issue reading the file. Assuming no extensions were found.")
return []
}

View File

@ -27,7 +27,7 @@ class PhpSwitcher {
from: brewPhpAlias.data(using: .utf8)!
).first!
print("When on your system, the `php` formula means version \(homebrewPackage.version)!")
Log.info("When on your system, the `php` formula means version \(homebrewPackage.version)!")
}
// MARK: - Properties
@ -100,7 +100,7 @@ class PhpSwitcher {
versionsOnly.append(phpAlias)
}
print("The PHP versions that were detected are: \(versionsOnly)")
Log.info("The PHP versions that were detected are: \(versionsOnly)")
availablePhpVersions = versionsOnly