App Version: 1.3
What is LogPolice?
LogPolice is an iOS application for inspecting an iOS device's internal log messages. Its primary purpose is to assist developers and testers in testing and debugging applications. To track down problems, the developer adds NSLog commands to the application. The output of these commands shows up on the device as log entries with level Warning and is used to monitor the behaviour of the application.
Log entries can also be viewed using the iPhone Configuration Program, which is available for free from Apple and which runs on a Mac connected to the iOS device. If you don't want to install the iPhone Configuration Program or don't have a Mac available while testing or just would like to see the messages at the device itself, then LogPolice is the tool of your choice.
LogPolice buffers up to 1500 log entries. Log entries can be filtered by log level and by sender. The filtered log messages can be sent by e-mail. In the free version of the app, only one e-mail in 24 hours is supported. The extended version of the app (see below) removes this restriction and adds some more features. If you want to be a tightwad, then you can circumvent this mechanism by deleting and reinstalling the app, but this way you won't get the other features of the extended version.
LogPolice works on all devices running iOS 5 or iOS 5.
In iOS 6, access to log messages is restricted to messages created by user processes. This is a new security measure introduced by Apple and which affects all log message viewer apps. To inspect all console messages of the device, you have to use the iPhone Configuration Program or the Xcode Organizer.
In iOS 7, Apple has tightened the security and user data protection even further. Apps now don't have access to any log messages of other apps. LogPolice, as well as all other comparable apps, do not work anymore. Further development of LogPolice does not make sense. We decided to keep the app in the app store for users of older iOS versions and make the in-app purchase of the extended version free.
With iOS 10 coming soon and LogPolice unusable since iOS 7, we finally removed the app from the app store at 2016-06-25.
LogPolice supports the following languages:
Using the program
After starting the application, the log messages are loaded and displayed in a table view:
Depending on the configuration (see Settings view), the message ID is displayed in the first column. Furthermore, starting with LogPolice 1.1, you can choose whether you would like to display the time with or without seconds. Starting with LogPolice 1.2, the message level display can be turned off.
Only the latest 256 log entries are stored on the device (this seems to be 257 on iOS 3.1.3), but as soon as LogPolice is running, it buffers up to 1500 entries. When 1500 entries are reached, the oldest 500 entries will be removed. In the table header you see how many buffered log entries there are and how many (filtered) log entries are actually displayed.
When new log entries come in while the main view of LogPolice is visible, the entries are added to the table and, unless autoscrolling is disabled (which can be done in the Settings view), the table view jumps to the latest entry. LogPolice does not watch the log when its main view is not visible. In particular, it does not and cannot update its log buffer while it is in the background (only applications like music players are allowed to execute in the background). When you bring LogPolice to the foreground again, it will read and display the messages that have been created in the meantime, but only up to 256 messages. If more than 256 messages have been created while LogPolice was in the background, then some messages will be missing. In iOS versions before 6 you can detect this by looking for a discontinuity of the message IDs (activate the message ID display in the Settings view). In iOS 6 there are discontinuous message IDs because iOS 6 does not allow LogPolice to retrieve all messages.
At the top left of the view you see a Freeze button. After you tap this button, the table view won't update itself anymore. When you tap the button again, automatic updating is re-established, and the accumulated log entries are added to the table.
By tapping the trashcan symbol in the lower left corner you clear LogPolice's log buffer. You might want to do this before starting an application test. The reload button to the right of the trashcan repopulates the buffer with the latest 256 log entries.
The e-mail button does the obvious: It allows you to send the filtered log entries as an e-mail attachment (plain text or HTML table, your choice).
In the extended version there is an additional print button if your iOS version supports printing. Do not waste paper by printing hundreds of unfiltered log entries. As a rule of thumb, about 25 log entries fit to an A4 page.
Then there is the Filter... button, after tapping of which you will get to a view where you can select what kinds of log entries you would like to see. Log entries can be filtered by log level and by sender. Changes in LogPolice 1.1: Only senders are displayed for which there are messages in the log; there are buttons to switch all levels / senders on and off; in the extended version, for each level and each sender the number of corresponding log entries is displayed.
Using the Test... button, you can create a log entry by yourself, which should immediately show up as the latest entry of the table (unless your filter settings hide Warning entries or the sender LogPolice, and unless the view is frozen).
In the main view one cannot read the complete log message in most cases (this is true in particular on the iPhone / iPod touch). After tapping a log entry, a Log Entry View is displayed, which shows the complete data of the selected log entry:
Here you can copy a row by long-tapping it. Starting with LogPolice 1.1, there is a Copy button at the right top of the view, which you can use to copy all rows of the table, and there are stepper buttons at the bottom left to jump to the previous or to the next entry. Starting with LogPolice 1.2, there is a slider which allows very fast scrolling through the log messages.
The extended version
At the info view, which you get after tapping the (i) symbol in the bottom right corner of the main view, there is a button titled In-App Purchases.... After tapping this button you can decide whether you would like to upgrade to the extended version, which offers following additional features:
- E-mailing is no more limited to once per 24 hours.
- Print function (on iOS versions which support printing and AirPrint-capable printers).
- The log entries are colored depending on log level.
- Statistical information in the filter view (new in LogPolice 1.1).
- Whenever a new log entry arrives while the main view of LogPolice is open, you will hear a sound. Depending on the log level, this is a 'Ping' or a 'Honk' sound. Not much of a benefit, but I really like it.
Colors and sounds can be deactivated in the Settings view.
Known deficiencies of the applicationLogPolice 1.0:
- Print formatting is ugly. Fixed in version 1.1.
- The sound interrupts the sound of other applications (e.g. music players). Fixed in version 1.1.
- The stepper buttons in the log entry view are missing when running on iOS 4.2.1 (iPhone 3G). Fixed in version 1.2.
- Letterboxing on iPhone 5. Fixed in version 1.3.
- There are no known bugs.