Coder Social home page Coder Social logo

aelog's Introduction

AELog

Simple, lightweight and flexible debug logging minion written in Swift

Language Swift 4.2 Platforms iOS | watchOS | tvOS | macOS License MIT

CocoaPods Version Carthage compatible Swift Package Manager compatible

If you find yourself in upcoming statements, then you probably want to use AELog:

  • I just want to log anything to console while working on a project, then turn it off when going live.
  • I'd like to enable / disable logging on a file level, and also to format log lines just the way I like.
  • I don't want to have anything other then that, I just want to be up and running in no time.

Index

Features

  • Top level logging which can be disabled when needed
  • Enable or disable logging on a file level
  • Customizable format and verbosity of log lines

Usage

/// Log detailed debugging information with a simple one liner:

aelog()

/// - Note: if this was on line 21 in `viewDidLoad` of a `ViewController`, output could look like this:
/// 2016-04-03 21:08:00.123 -- [Main] ViewController (21) -> viewDidLoad() >

/// Add custom text to log line:

aelog("hi there")

/// Log random items (some interesting variables at the moment)

let text = "One two three four five"
let x: CGFloat = 21
let y: CGFloat = 8
let size = CGSize(width: 19, height: 84)
let rect = CGRect(x: x, y: y, width: size.width, height: size.height)
let range = 1...5

aelog(text, x, y, size, rect, range, Log.shared, self)

/// - Note: in this case output could look like this:
/// 04:01:05.967 -- ViewController (30) -> viewDidAppear > 

/// #0: String | "One two three four five"
/// #1: Double | 21.0
/// #2: Double | 8.0
/// #3: CGSize | (19.0, 84.0)
/// #4: CGRect | (21.0, 8.0, 19.0, 84.0)
/// #5: CountableClosedRange<Int> | CountableClosedRange(1...5)
/// #6: Log | AELog.Log
/// #7: ViewController | <AELogDemo_iOS.ViewController: 0x7fd14c41dd60>

/// Log both to debugger and device console:

aelog("this should be logged just in case...", mode: .nsLog)

/// Log Settings

/// Enable or disable logging with one flag and customize formatting as you like.
/// - Warning: `aelog` will by default work only if logging is enabled and file is not disabled in settings,
/// otherwise it will do nothing, but with `mode: .nsLog` it will always work, wether logging is enabled or not.

let settings = Log.shared.settings

settings.isEnabled = true
settings.dateFormat = "yyyy-MM-dd HH:mm:ss.SSS"
settings.template = "{date} -- [{thread}] {file} ({line}) -> {function} > {text}"

/// - Note: toggle logging for specific files like this:
settings.files = [
    "AppDelegate" : false,
    "ViewController" : true
]

/// LogDelegate

Log.shared.delegate = self

func didLog(line: Line, mode: Log.Mode) {
    /// - Note: do something here?
}

One more thing

Have you ever wanted to see the output of your app while you're not at your computer, like in real time directly on your iOS device? Yeah, me neither, but just in case you change your mind (like I did), check out AEConsole - customizable console UI overlay with debug log on top of your iOS app. After all, AELog was made just to complement AEConsole. :)

Installation

License

AELog is released under the MIT license. See LICENSE for details.

aelog's People

Contributors

acidfilez avatar tadija avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.