[swift-users] CleanroomLogger, a pure Swift logging engine

Evan Maloney emaloney at gilt.com
Tue Dec 15 01:31:01 CST 2015


Thanks for the suggestion.

I took a stab at adding Swift package manager support to CleanroomLogger <https://github.com/emaloney/CleanroomLogger>. The trickiest part was getting the C headers for the Apple System Log exposed as a Swift module <https://github.com/emaloney/AppleSystemLogSwiftPackage> so it could be imported by the CleanroomASL <https://github.com/emaloney/CleanroomASL> dependency. (The Swift Package Manager doesn't support bridging headers, which makes hooking up to non-Swift code a bit cumbersome. Thanks to the kind folks on the swift-build-dev mailing list, I got it sorted.)

I built a command line tool with 'swift build' and was able to 'import CleanroomLogger' by specifying a dependency like the following in a Package.swift file:

import PackageDescription

let package = Package(
    dependencies: [
        .Package(url: "https://github.com/emaloney/CleanroomLogger", versions: Version(1,5,6) ..< Version(2,0,0))
    ]
)

With this package, I created a main.swift file:

import CleanroomLogger

Log.enable(synchronousMode: true)

Log.info?.trace()

And built & ran it from the Terminal:

   INFO | main.swift:5 — loggertest

It worked!!!

Very gratifying to see Swift package manager build something without too much effort.



> On Dec 9, 2015, at 3:59 PM, Gage Morgan <gagemorgan at outlook.com> wrote:
> 
> Please port it. The PM is a bit buggy right now. It's difficult enough when the thing spits errors, but even worse when you don't really have a way to trace what you did. I'd attempt to use it. 
> 
> Sent from Outlook Mobile <https://aka.ms/qtex0l>
> 
> 
> 
> On Wed, Dec 9, 2015 at 12:56 PM -0800, "Max Howell via swift-users" <swift-users at swift.org <mailto:swift-users at swift.org>> wrote:
> 
> Very exciting. Glad to see such projects emerge.
> 
> I hope that you’ll accept patches to make it cross-platform! And to include swift package manager support.
> 
>> On Dec 9, 2015, at 12:53 PM, Evan Maloney via swift-users <swift-users at swift.org <mailto:swift-users at swift.org>> wrote:
>> 
>> Over on some of the other Swift mailing lists, people have been asking about Swift logging engines; since this list seems to be the right place to discuss them, I hope you'll indulge me in letting you know about CleanroomLogger, a real logging engine written in pure Swift:
>> 
>> https://github.com/emaloney/CleanroomLogger <https://github.com/emaloney/CleanroomLogger>
>> 
>> Why do I say it's a real logging engine? Because the other pure Swift loggers I've run across are all just wrappers around print().
>> 
>> Loggers that just call print() aren't actually sending messages to the system console; if you use these loggers and expect to read their output through Console.app, you'll be out of luck.
>> 
>> CleanroomLogger writes to the Apple System Log (ASL) facility, just like NSLog() does. But unlike NSLog(), which can bog down your app if not used judiciously, CleanroomLogger is designed to be performant, so you don't have to worry that your desire for diagnostics is going to kill your app's performance.
>> 
>> CleanroomLogger is mature enough to be shipping in significantly-revenue-generating apps, and the project now has over 500 stars on GitHub. I hope you'll find it useful.
>> 
>> In the meantime, if you're interested in furthering the state of Swift logging, please reach out to me. Alex Kolov has set up a swift-logging org on GitHub to help drive Swift logging standards; community involvement desired:
>> 
>> https://github.com/swift-logging <https://github.com/swift-logging>
>> 
>> Thanks for your time,
>> E. Maloney
>> Gilt Groupe
>> 
>> 
>> _______________________________________________
>> swift-users mailing list
>> swift-users at swift.org <mailto:swift-users at swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-users
> 
> 
> <Mail Attachment.txt>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20151215/e1ce7d23/attachment.html>


More information about the swift-users mailing list