shial4/logswift
SLLog is a simple yet elegant swift logger. Allows you to log content to file, console or your custom target.
π§ Installation
Add the following dependency to your Package.swift file:
.package(url: "https://github.com/SLLog/SLLog", from: "1.1.0"),π How To Start
1 Import
On top of your file import:
import SLLog2 Usage
Log any information you need with Log class
Log.d("ABC")
Log.w("#%^$&@")
Log.e("1233")Any object.
SLLog.addHandler(SLLogConsole())
Log.v(123)
Log.i("ABC")
Log.d("@$#!^%")
Log.w(Date())
Log.e([0.1,1,"A",Date()])3 Initialize
Setup SLLoger
SLLog.addHandler(try! SLLogFile("path/to/directory"))Or console handler
SLLog.addHandler(SLLogConsole())or both
SLLog.addHandler(SLLogConsole(), try! SLLogFile(path))You can create your custom log handler. Simply correspond to LogHandler protocol.
public class MyHandler: LogHandler {
open func handle(message: Any, level: SLLog.LogType, file: String, line: UInt) {
//Do your stuff with log.
}
}then add it to SLLog
SLLog.addHandler(MyHandler())4 Providers
SLLog can have custom providers. To add your own provider
struct MySLLogProvider: LogProvider {}
SLLog.addProvider(MySLLogProvider())can you can use LogProvider build in method send. To send your log via SLLog.
5 SLLogConsole
Default console log:
isDebug: Bool = true,
isTerminal: Bool = {
#if Xcode
return false
#else
return true
#endif
}(),
minProductionLogType: UInt = 3
logFormat: String = ":d :t :f::l :m",
dateFormat: String? = nil,
logColors: [SLLog.LogType:LogColor]? = nilOverride argument passing it in initializer to variate ConsoleLog SLLogConsole(isDebug: true, isTerminal: false) or SLLogConsole(isTerminal: false) and so on. Use isTerminal property to choose between terminal or console settings. SLLogConsole(isTerminal: false)
To fully configure SLLog pas Configuration object during initialisation. public init(_ config: Configuration = Configuration())
By default, logs are set for a terminal. log format ":d :t :f::l :m" where
:d is replaced in string to display date :t is replaced by log type :f is replaced by file name :l is replaced by line number :m is replaced by message object
Default date format used by logger is as follow "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
To get rid of default log colors pass empty dictionary in logColors or dictionary with your own definitions. For more information about terminal color take a look: https://misc.flogisoft.com/bash/tip_colors_and_formatting
LogColor
LogColor is defined as follow init( terminal: String, console: String) For XCode console emoticons are used as collor.
SLLog.LogType.verbose:LogColor(TerminalColor.lightGray, "βοΈ"),
SLLog.LogType.info:LogColor(TerminalColor.lightCyan, "βοΈ"),
SLLog.LogType.debug:LogColor(TerminalColor.lightGreen, "β
"),
SLLog.LogType.warning:LogColor(TerminalColor.lightYellow, "β οΈ"),
SLLog.LogType.error:LogColor(TerminalColor.lightRed, "βοΈ"),Use TerminalColor to fast access predefined colors values
5 SLLogFile
SLLogFile save logs to files which are created on daily basis. File names are as follows: "yyyy-MM-dd". Created under :yuorPath/sllogs with extension .log Default maxFilesCount is set to 3 wich means logger stores 3 files at a time. 1 file = 1 day logs
β Contributing
Be welcome to contribute to this project! :)
β Questions
You can create an issue on GitHub.
π License
This project was released under the MIT license.
Package Metadata
Repository: shial4/logswift
Default branch: master
README: README.md