
The message is then packaged with context before it is sent to the logging service. This avoids expensive, synchronous execution of argument evaluation. Message arguments don't need to be evaluated if the message is going to be filtered out. For instance, logging can mean printing to console with NSLog, writing to a file on disk, or sending the message to a remote server. Output streams encapsulate their own behavior and decisions, including filtering and logging messages. The logging service is configured by adding discrete output streams. The log message is sent to the logging service which provides the message to each output stream. the logging service instance or singleton.If Twitter Logging Service doesn't meet your needs, there are many great logging frameworks available, including the following high quality and well maintained projects: List of good alternative logging frameworks We've decided to share it with the developer community. Twitter has been using Twitter Logging Service since January 2014 with minimal changes. require messages to opt-in for persisted logs (a security requirement, fulfilled by using the context feature of TLS).

able to designate importance to log messages (log levels).able to categorize log messages (log channels)."output streams" filter messages rather than global filtering for all "output streams".support pluggable "output streams" to which messages will be delivered.Twitter created a framework for logging in order to fulfill the following requirements:
