The logging utility is a simple framework that provides an easy way to log all of your Swift or Objective C code. You can use the logging utility to write logs, debug, and profile your app.

The nslog objective-c is a logging utility for Swift and Objective C. It allows you to log messages in one of the following ways:

Swift and Objective C logging tool.


  • During development, enable logging; while building for the App Store, disable it.
  • Logging for particular classes may be enabled or disabled.
  • Different log levels allow for more precise logging management inside a class.
  • Toggle between logging to the console, a text file, and a custom destination.
  • When logging is deactivated (due to the @auto closure feature), the log message is not calculated.

##Note on Maintenance

This is something I actively utilize in my own projects, and it’s something I incorporate in every new project I do. It meets my requirements well. However, I just work on iOS applications in my free time, which isn’t much. This may impact how quickly I respond to pull requests.

##Introduction to Usage

###Making use of a shared logger

The shared logger is the most straightforward and efficient method to get started with Swell.“Retrieving contact for (name)”) class ContactService method getContact(name: String)…

INFO: Trying to get Steve’s contact information.

###Using a logger with a unique name

Using a named logger gives you more control over which logs from which classes you want to view while you’re developing. A typical name would be the same as the class that uses it, making it clear which class is logging which statement.

Let logger = Swell in class ContactService. getLogger(“ContactService”) logger.debug(“Retrieving contact for (name)”)… method getContact(name: String)

DEBUG ContactService: Trying to get Steve’s contact information

###Logging complicated statements You may require additional code to produce the information you need to log, but you don’t have to run it while building for the App Store. The solution to this problem is to use Swell’s closure functions.

Let logger = Swell in class ContactService. getLogger(“ContactService”) func logger.trace getContact(name: String) getContact(name: String) getContact(name: String) getContact(name: String) getContact(name: String return “Retrieving contact for (name) of (city)” let city = getCityFor(name)

Only if the statement is recorded according to the Logger’s configuration will the code in the closure run.

###Turn off all loggers

Are you working on an app for the App Store? Remember to turn off your loggers.

See also the following part, which configures Swell using an optional.plist file.


Add a Swell.plist resource file to have greater control over how Swell loggers act. You may then choose which log levels to activate, where the log output should be sent, and what information should be included in each log.

###Configuration of the root The root configuration determines how all Swell loggers behave.

Swell.plist example

All keys are negotiable. If the log destination is specified as “file,” you must also give a filename for the log file. Any settings that aren’t provided will return to the built-in defaults.

###Logger setups with names

For named loggers, you may provide a different setup. The configuration details, like the root configuration, are optional, and any undefined values will be used by the root configuration.

Create a Dictionary type in the plist file with the logger name as the Key. For that logger, the settings in this Dictionary will be utilized.

Swell.plist with configuration for a named logger

MyStableClass is set in the example above to only generate error-level or higher logs, and to utilize a different log output format than other loggers. Because a log location was not given, the same location defined in the root configuration will be used.

When you construct your Logger instance, provide the name of the logger you want to use.

Let Swell be the logger. getLogger(“MyStableClass”)


Let’s face it: we have a lengthy list of features for anything we create long before we finish it.

However, my aim with Swell is to make it as simple as possible while still providing the configurability I’ve been searching for since I first began working with iOS.

So here’s a To Do list for Swell:

  • Additional documents
  • FlexFormatter now has a better date format.

The Swell library is, nevertheless, alpha software. Things may change in the future (drastically). However, since I already use it heavily for my projects, I have strong motivation to maintain the public API reliable.


The nslog swift is a logging utility for Swift and Objective C. It is used to log messages in the system logs, and it can also send them to a file or terminal window.

Related Tags

  • swift nslog example
  • swift log to file
  • os log swift
  • ios logging best practices
  • swift logging best practices

Comments are closed.