# Troubleshooting ## Configuration options designed for advanced users This document is to cover some interesting topics that are intended for advanced users only. Sections: - [Logging ](#logging) - [Crashlytics ](#Crashlytics) # Logging cTiVo stores its main log files at ~/Library/Logs/cTiVo. You can open this folder with the menu command Help>Show Logs in Finder. The last four files are kept with up to 10M each. They are named with the creation date to figure out the order (e.g. `com.cTiVo.cTiVo 2014-09-25 15-51.log`). These files can be opened in any text editor, or double-clicking should open the Console application, which provides a nice filter option. As there's an enormous amount of data flowing through cTiVo, we let you control the amount of logging by the different parts of the program. There are five levels: - None: No output generated - Normal: General tracking of events - Major: Key points in the work flow - Detail: Detailed work flow - Verbose: Logs of all major data elements In addition, in Advanced Preferences (Option-Cmd-Comma) you can set this level for each of the main objects in the program, at least the ones that generate log information, are: - AppDelegate: The main program - TivoManager: Holder of the major data items and cross-!TiVo activity - TiVo: Communicating with an individual TiVo - TiVoRPC: Real-time communications with the TiVo - TiVoShow: A show as stored on a TiVo - Download: The process to copy a show to the Mac - Format: Which encoder and parameters to use for a download - EDL: Edit Decision List (generated by comskip to indicated where commercials begin/end) - SRT: Sub Rip Text (subtitle format as generated by ccextractor ) - iTunes: Communication object with iTunes - Task: An individual activity, such as commercialing, or decoding to be monitored - TaskChain: A set of Tasks to be executed in parallel - TVDB: Communications with theTVDB website - Subscription: A request to store all episodes of a series In addition, there are the User Interface Components, which log user requests: - MainWindowController - DownloadTableView - ProgramTableView - SubscriptionTableView - ManualTivoEditorController While diagnosing an issue, you probably want to set all components to at least Major, with relevant ones to Detail and the one you're most interested in to Verbose. For example, if you're interested in debugging a new encoding format, most of the debug activity you'll be interested in will be in Download, so set that one and Format to Verbose. In the event of a failure, this will include the recent entries in the sub-program's (e.g. encoder, comskip etc) log files to help you diagnose the issue. Beyond the Normal level, the logs are primarily intended as a guide to which part of the code is being executed, so it's best to read them in conjunction with the source code. One string to filter on is "DL Status", which shows the transitions each show makes from one phase to the next. To get maximum information about a download, also set Task and TaskChain to Detail or Verbose, although this generates a lot of data. To submit a log file, it's probably best to select the entire folder and right-click to Compress the logs into a zip file. GitHub does not support posting random files, so you'll need to put this on another file site and provide a link to it in your issue. As an aside, if you're diagnosing a problem during, holding down Control and Option while starting will force all modules to do Verbose logging. Be sure to turn it off later! In fact, if you don't hold down Control-Option and all modules are at Verbose, cTiVo will turn logging down to Major to avoid overloading your logs and slowing down performance during normal operations. # Crashlytics In order to provide better support, if cTiVo crashes, it will log information about where in the program it occurred back to the developers via Crashlytics server. If you do not wish this to happen, you may opt out in the Advanced Preferences screen [Advanced Topics](Advanced-Topics.md#advanced-settings).