[swift-users] CleanroomLogger, a pure Swift logging engine
Evan Maloney
emaloney at gilt.com
Thu Dec 10 23:09:25 CST 2015
Hi Jeremy,
The statics on the Log struct are a convenience facade. They supply a simple, pre-defined way for application developers to log at the five most common log levels. The rationale for it is described here:
https://github.com/emaloney/CleanroomLogger#full-disclosure-a-note-about-global-state <https://github.com/emaloney/CleanroomLogger#full-disclosure-a-note-about-global-state>
However, you can have far more granular control if you wish by instantiating and using your own LogChannels and LogReceptacles.
That said, if this logger doesn't work for you, and if you have strong opinions about how logging should work in Swift, you might want to consider joining the Swift Standard Logging Community, which grew out of the various Swift mailing lists, and is looking to tackle common use cases:
https://github.com/swift-logging/specifications <https://github.com/swift-logging/specifications>
All the best,
E.
> On Dec 10, 2015, at 4:46 AM, Jeremy Pereira <jeremy.j.pereira at googlemail.com> wrote:
>
> Hi,
>
> One thing your logger is missing is the ability to set different log levels for different modules and source files. Moreover, I think it would actually be quite difficult for you to add this functionality with all the static functions.
>
>
>
>> On 9 Dec 2015, at 20:52, Evan Maloney via swift-users <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
>>
>> 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
>>
>> Thanks for your time,
>> E. Maloney
>> Gilt Groupe
>>
>>
>> _______________________________________________
>> swift-users mailing list
>> swift-users at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20151211/5ef6b9df/attachment.html>
More information about the swift-users
mailing list