<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://kodi.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bs27975</id>
	<title>Official Kodi Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://kodi.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bs27975"/>
	<link rel="alternate" type="text/html" href="https://kodi.wiki/view/Special:Contributions/Bs27975"/>
	<updated>2026-07-10T13:36:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://kodi.wiki/index.php?title=Log_file/Advanced&amp;diff=82783</id>
		<title>Log file/Advanced</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Log_file/Advanced&amp;diff=82783"/>
		<updated>2014-12-31T17:22:53Z</updated>

		<summary type="html">&lt;p&gt;Bs27975: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Troubleshooting]] | [[HOW-TO:Submit a bug report]] | [[Log file]] }}&lt;br /&gt;
&lt;br /&gt;
:{{bigger|&#039;&#039;Not sure what to do, but someone just asked you for a &amp;quot;log file&amp;quot;, &amp;quot;debug log&amp;quot;, or &amp;quot;xbmc.log&amp;quot;? &#039;&#039;&#039;[[Log file/Easy|Click here]].&#039;&#039;&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section being=&amp;quot;intro&amp;quot; /&amp;gt;At some point during your foray into {{kodi}}, you will likely come up against a problem that isn&#039;t made 100% clear from errors in the GUI. This is where the log file comes into play. {{kodi}} writes all sorts of useful stuff to its log, which is why it should be included with every bug/problem report. Don&#039;t be afraid of its contents! Often a quick glance through the log will turn up a simple typo or missing file which you can easily fix on your own.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Log file password warning}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Enable debugging = &amp;lt;!-- odd header levels are used intentionally for better readability on this specific page --&amp;gt;&lt;br /&gt;
If someone asks for a debug log then debugging needs to be enabled. There are three ways to do this:&lt;br /&gt;
&lt;br /&gt;
# Select the enable debug options in the &#039;&#039;&#039;[[#GUI settings|GUI settings]]&#039;&#039;&#039;&lt;br /&gt;
# Use an &#039;&#039;&#039;[[#advancedsettings.xml|advancedsettings.xml]]&#039;&#039;&#039; file&lt;br /&gt;
# Toggle debug logging with a &#039;&#039;&#039;[[#Keyboard or remote shortcut|keyboard or remote shortcut]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== GUI settings ==&lt;br /&gt;
Most users only need to enable debug logging in the GUI.&lt;br /&gt;
&lt;br /&gt;
In {{highlight|bordered=yes|[[Settings/System#Debugging|Settings -&amp;gt; System -&amp;gt; Debugging]]}} toggle the &#039;&#039;&#039;&#039;&#039;Enable debug logging&#039;&#039;&#039;&#039;&#039; setting.&lt;br /&gt;
&lt;br /&gt;
{{#lst:Settings/System|debugging}}&lt;br /&gt;
&lt;br /&gt;
== advancedsettings.xml ==&lt;br /&gt;
{{helix note|Some of this might only apply to the future version, Kodi v14 &amp;quot;Helix&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
You can manually enable debug logging directly using an [[advancedsettings.xml]] file. This is especially useful if {{kodi}} is crashing during start-up and you are unable to turn debugging on via the GUI. The advancedsettings.xml file is simply a plain text document that is saved in the [[userdata folder]] and read when {{kodi}} first starts up. You can use the following examples to enable debug logging:&lt;br /&gt;
&lt;br /&gt;
{{note|Be sure to format this as a &#039;&#039;&#039;plain text&#039;&#039;&#039; document, and make sure it is titled &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt; and make sure the extension is &#039;&#039;just&#039;&#039; &amp;lt;code&amp;gt;.xml&amp;lt;/code&amp;gt; and not something like &amp;quot;.xml.txt&amp;quot; or &amp;quot;.xml.doc&amp;quot;. }}&lt;br /&gt;
&lt;br /&gt;
=== advancedsettings.xml for normal debugging ===&lt;br /&gt;
If you want &#039;&#039;&#039;basic debug logging&#039;&#039;&#039; then use this. This the same as enabling logging in the GUI without enabling component-specific logging. Start with this one first if you are not sure which mode to use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt; &amp;lt;!-- Change this to &amp;quot;1&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== advancedsettings.xml for input devices ===&lt;br /&gt;
&#039;&#039;Useful as you cannot enable debug logging in the GUI if your input devices don&#039;t work.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you only want debug logging with verbose components for &#039;&#039;&#039;input devices&#039;&#039;&#039; (JSON-RPC, CEC, HTTP, for remotes, smart phone remotes, web remotes, etc) then use this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt; &amp;lt;!-- Change this to &amp;quot;1&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
    &amp;lt;debug&amp;gt;&lt;br /&gt;
        &amp;lt;extralogging&amp;gt;true&amp;lt;/extralogging&amp;gt;&lt;br /&gt;
        &amp;lt;setextraloglevel&amp;gt;64,2048,32768&amp;lt;/setextraloglevel&amp;gt;&lt;br /&gt;
        &amp;lt;showloginfo&amp;gt;true&amp;lt;/showloginfo&amp;gt; &amp;lt;!-- Change this to &amp;quot;false&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
    &amp;lt;/debug&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== advancedsettings.xml for everything ===&lt;br /&gt;
If you want debug logging with &#039;&#039;&#039;all verbose components&#039;&#039;&#039; enabled use this.&lt;br /&gt;
&lt;br /&gt;
{{note|Normally, you don&#039;t want to use this one unless specifically asked for it, as it will create a very hard-to-read debug log.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt; &amp;lt;!-- Change this to &amp;quot;1&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
    &amp;lt;debug&amp;gt;&lt;br /&gt;
        &amp;lt;extralogging&amp;gt;true&amp;lt;/extralogging&amp;gt;&lt;br /&gt;
        &amp;lt;setextraloglevel&amp;gt;32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536&amp;lt;/setextraloglevel&amp;gt;&lt;br /&gt;
        &amp;lt;showloginfo&amp;gt;true&amp;lt;/showloginfo&amp;gt;&lt;br /&gt;
    &amp;lt;/debug&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Technical notes ===&lt;br /&gt;
{{collapse top}}&lt;br /&gt;
Everything except the &amp;lt;code&amp;gt;&amp;lt;loglevel&amp;gt;&amp;lt;/code&amp;gt; tag is actually taken from guisettings.xml, but they can be used in the advancedsettings.xml file as a way to manually enable them.&lt;br /&gt;
&lt;br /&gt;
As one can see from the previous sections, individual component logging is set using the &amp;lt;code&amp;gt;&amp;lt;setextraloglevel&amp;gt;&amp;lt;/code&amp;gt; tag. A complete list of the components and their setting value follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Component !! setting value&lt;br /&gt;
|-&lt;br /&gt;
| LOGSAMBA || 32&lt;br /&gt;
|-&lt;br /&gt;
| LOGCURL || 64&lt;br /&gt;
|-&lt;br /&gt;
| LOGCMYTH || 128&lt;br /&gt;
|-&lt;br /&gt;
| LOGFFMPEG || 256&lt;br /&gt;
|-&lt;br /&gt;
| LOGRTMP || 512&lt;br /&gt;
|-&lt;br /&gt;
| LOGDBUS || 1024&lt;br /&gt;
|-&lt;br /&gt;
| LOGJSONRPC || 2048&lt;br /&gt;
|-&lt;br /&gt;
| LOGAUDIO || 4096&lt;br /&gt;
|-&lt;br /&gt;
| LOGAIRTUNES || 8192&lt;br /&gt;
|-&lt;br /&gt;
| LOGUPNP || 16384&lt;br /&gt;
|-&lt;br /&gt;
| LOGCEC || 32768&lt;br /&gt;
|-&lt;br /&gt;
| LOGVIDEO || 65536&lt;br /&gt;
|}&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
== Keyboard or remote shortcut ==&lt;br /&gt;
Since XBMC v12 a keymap.xml file can map a keyboard shortcut or remote control button to toggle debugging using the value &amp;lt;code&amp;gt;toggledebug&amp;lt;/code&amp;gt;. For example, &amp;lt;code&amp;gt;&amp;lt;l&amp;gt;toggledebug&amp;lt;/l&amp;gt;&amp;lt;/code&amp;gt;. See [https://github.com/xbmc/xbmc/pull/1226 here] and &#039;&#039;&#039;[[keymaps]]&#039;&#039;&#039; for more information on how to define a keyboard or remote button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After you have enabled debug logging, please restart {{kodi}} so that the log starts fresh and contains full start-up information.&lt;br /&gt;
&lt;br /&gt;
= So what do I do with this thing? =&lt;br /&gt;
&lt;br /&gt;
Whatever you do, please &#039;&#039;&#039;DO NOT&#039;&#039;&#039; paste it directly into IRC, a forum post or ticket on the bug tracker.  This not only clutters said text, but the log is nearly impossible to read like this.  If your log file is too big for the following methods, please restart {{kodi}} to start a clean log file file, recreate the problem in as few steps as possible, then stop {{kodi}} and try again.  If it is still too large, try disabling features such as &amp;quot;scan library on startup&amp;quot;, which spam&#039;s a lot of info to the log (unless of course this is where the problem is).&lt;br /&gt;
&lt;br /&gt;
:{{note|{{big|&#039;&#039;&#039;Always include the whole debug log.&#039;&#039;&#039; Don&#039;t assume which portions of the log are relevant or not. }} }}&lt;br /&gt;
&lt;br /&gt;
:{{note|Make sure you have enabled &amp;quot;debug logging&amp;quot;. The normal log file, without debugging enabled, is almost always useless when it comes to troubleshooting!}}&lt;br /&gt;
&lt;br /&gt;
=== In the forums and IRC ===&lt;br /&gt;
Use a pastesite such as http://xbmclogs.com , http://pastebin.com , or http://pastebin.ca on when posting on the forums.  Simply visit one of these sites, paste or upload your log and hit submit.  After a few seconds you&#039;ll have a nice short URL to paste in your post.  Be sure to select an appropriate time to keep your paste around when submitting!&lt;br /&gt;
&lt;br /&gt;
=== On the bug tracker ===&lt;br /&gt;
Just upload the log to your ticket as an attachment.  &#039;&#039;&#039;DO NOT&#039;&#039;&#039; archive (zip,rar,tar,etc) it in anyway!  Trac will let us view it right on the site without downloading.&lt;br /&gt;
&lt;br /&gt;
=== Watch it locally, perhaps spotting errors you can fix or report ===&lt;br /&gt;
Using &#039;tail -f {location}&#039; you can watch the log from a cmd/console (better with 2 displays), or better, via ssh (won&#039;t distract the gui).&lt;br /&gt;
&lt;br /&gt;
= Log files =&lt;br /&gt;
* &#039;&#039;&#039;kodi.log&#039;&#039;&#039; or &#039;&#039;&#039;xbmc.log&#039;&#039;&#039; - This is the log file of most recent (or currently running) {{kodi}} session.&lt;br /&gt;
* &#039;&#039;&#039;kodi.old.log&#039;&#039;&#039; or &#039;&#039;&#039;xbmc.old.log&#039;&#039;&#039; - This is the log file from the last XBMC session.  If {{kodi}} crashes AND you have restarted it before viewing the log, this is the one you want.&lt;br /&gt;
&lt;br /&gt;
=== Location ===&lt;br /&gt;
&#039;&#039;kodi.log&#039;&#039; {{small|(or &#039;&#039;xbmc.log&#039;&#039;)}} and &#039;&#039;kodi.old.log&#039;&#039; {{small|(or &#039;&#039;xbmc.old.log&#039;&#039;)}} are located here, depending on your platform:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; &lt;br /&gt;
! style=&amp;quot;background: lightgrey; width: 150px&amp;quot; | &#039;&#039;&#039;Operative system&#039;&#039;&#039; &lt;br /&gt;
! style=&amp;quot;background: lightgrey; width: 700px&amp;quot; | &#039;&#039;&#039;File/Folder Paths&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=2 | {{Helix note|Directories and files named &amp;lt;code&amp;gt;&#039;&#039;&#039;xbmc&#039;&#039;&#039;&amp;lt;/code&amp;gt; will be renamed to &amp;lt;code&amp;gt;&#039;&#039;&#039;kodi&#039;&#039;&#039;&amp;lt;/code&amp;gt; as part of the project rename starting in v14.}}&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Android&#039;&#039;&#039;  || {{note|The first folder might be different on various devices:}} &amp;lt;code&amp;gt;&#039;&#039;&amp;lt;data/sdcard/Android&amp;gt;&#039;&#039;/data/org.xbmc.xbmc/cache/temp/xbmc.log&amp;lt;/code&amp;gt;&lt;br /&gt;
or  &amp;lt;code&amp;gt;/sdcard/Android/data/org.xbmc.xbmc/files/.xbmc/temp/xbmc.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;iOS/ATV2&#039;&#039;&#039; || &amp;lt;code&amp;gt;/private/var/mobile/Library/Preferences/xbmc.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Linux&#039;&#039;&#039; || &amp;lt;code&amp;gt;$HOME/.kodi/temp/kodi.log&amp;lt;/code&amp;gt; &#039;&#039;(or &amp;lt;code&amp;gt;$HOME/.xbmc/temp/xbmc.log)&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mac OS X&#039;&#039;&#039; || &amp;lt;code&amp;gt;/Users/&#039;&#039;&amp;lt;username&amp;gt;&#039;&#039;/Library/Logs/xbmc.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Windows&#039;&#039;&#039; || &amp;lt;code&amp;gt;%APPDATA%\XBMC\xbmc.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[[Special protocol]]&#039;&#039;&#039; || &amp;lt;code&amp;gt;special://logpath (this can be used by scripts)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See &#039;&#039;&#039;[[Log file/File manager access]]&#039;&#039;&#039; for how to copy the debug log file using the [[File manager]].&lt;br /&gt;
&lt;br /&gt;
= Easy ways to get and post the log file =&lt;br /&gt;
=== Debug log add-on ===&lt;br /&gt;
{{main|Log file/Easy}}&lt;br /&gt;
You can use the &#039;&#039;&#039;[[Add-on:XBMC Log Uploader|XBMC Log Uploader]]&#039;&#039;&#039; to make the process of getting your debug log easier.&lt;br /&gt;
&lt;br /&gt;
=== Automatic pastebin log in Linux via command line ===&lt;br /&gt;
You can generate a debug.log [http://en.wikipedia.org/wiki/Pastebin Pastebin] link automatically quickly to post anywhere that requires a debug.log.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See also:&#039;&#039;&#039;&#039;&#039; [[SSH|Accessing XBMC via SSH]] e.g. Putty&lt;br /&gt;
&lt;br /&gt;
:{{note|Don&#039;t forget to [[#Enable debugging|enable debugging]]}}&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pastebinit -y&lt;br /&gt;
&lt;br /&gt;
cat $HOME/.kodi/temp/kodi.log | pastebinit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;(or cat $HOME/.xbmc/temp/xbmc.log | pastebinit)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Submit the link you get in any forums discussion where you post about &#039;&#039;&#039;any&#039;&#039;&#039; problem.&lt;br /&gt;
&lt;br /&gt;
= Technical details about log files =&lt;br /&gt;
{{Editor note|This section might be outdated now that {{kodi}} has component-level logging. Some of it should still be true, but just keep in mind that this section hasn&#039;t been totally cleaned up for v13 and v14 yet.}}&lt;br /&gt;
&amp;lt;!-- {{collapse top}} - this is good stuff I missed the first time around for lack of expansion. I expect even a cursory user will take a peek and wonder what the heck the guts are. --&amp;gt;&lt;br /&gt;
=== Layout ===&lt;br /&gt;
Each event is logged to one line of the {{kodi}} log file which is formatted as follows...&lt;br /&gt;
&amp;lt;pre&amp;gt;[TIMESTAMP] T:[THREADID] M:[FREEMEM] [LEVEL]: [MESSAGE]&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;TIMESTAMP&#039;&#039;&#039; - The wall time at which the event occurred.&lt;br /&gt;
* &#039;&#039;&#039;THREADID&#039;&#039;&#039; - The thread identification number of the thread in which the event occurred.&lt;br /&gt;
* &#039;&#039;&#039;FREEMEM&#039;&#039;&#039; - The amount of memory (in bytes) free at the time of the event.&lt;br /&gt;
* &#039;&#039;&#039;LEVEL&#039;&#039;&#039; - The severity of the event.&lt;br /&gt;
* &#039;&#039;&#039;MESSAGE&#039;&#039;&#039; - A brief description and/or important information about the event.&lt;br /&gt;
&lt;br /&gt;
=== Log levels ===&lt;br /&gt;
There are two different types levels when talking about the {{kodi}} log.  The first is the severity of event that has occurred.  The second controls which severity levels are actually printed out to the log.&lt;br /&gt;
&lt;br /&gt;
;Severity levels&lt;br /&gt;
In order from least to most severe...&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039; - In depth information about the status of {{kodi}}.  This information can pretty much only be deciphered by a developer or long time {{kodi}} power user.&lt;br /&gt;
* &#039;&#039;&#039;INFO&#039;&#039;&#039; - Something has happened.  It&#039;s not a problem, we just thought you might want to know.  Fairly excessive output that most people won&#039;t care about.&lt;br /&gt;
* &#039;&#039;&#039;NOTICE&#039;&#039;&#039; - Similar to INFO but the average Joe might want to know about these events.  This level and above are logged by default.&lt;br /&gt;
* &#039;&#039;&#039;WARNING&#039;&#039;&#039; - Something potentially bad has happened.  If {{kodi}} did something you didn&#039;t expect, this is probably why.  Watch for errors to follow.&lt;br /&gt;
* &#039;&#039;&#039;ERROR&#039;&#039;&#039; - This event is bad.  Something has failed.  You likely noticed problems with the application be it skin artifacts, failure of playback a crash, etc.&lt;br /&gt;
* &#039;&#039;&#039;FATAL&#039;&#039;&#039; - We&#039;re screwed.  {{kodi}} is about to crash.&lt;br /&gt;
&lt;br /&gt;
;Log file control levels&lt;br /&gt;
In order from least to most information provided...&lt;br /&gt;
* &#039;&#039;&#039;None&#039;&#039;&#039; - No logging will occur.  &#039;&#039;xbmc.log&#039;&#039; will likely be created but should remain empty.&lt;br /&gt;
* &#039;&#039;&#039;Normal&#039;&#039;&#039; - The default loglevel.  Events with a severity of NOTICE or greater will be logged.&lt;br /&gt;
* &#039;&#039;&#039;Debug&#039;&#039;&#039; - All events are logged.  This level (or higher) is all that you should bother someone else with.&lt;br /&gt;
* &#039;&#039;&#039;Debug w/ Visuals&#039;&#039;&#039; - Same printed log as &#039;&#039;Debug&#039;&#039;, but free memory and CPU usage are rendered on the screen as well.&lt;br /&gt;
* &#039;&#039;&#039;SMB Debug&#039;&#039;&#039; - Same as &#039;&#039;Debug w/ Visuals&#039;&#039; with the addition of ridiculous amounts of Samba debugging info.  Use this only if asked.&lt;br /&gt;
&amp;lt;!-- {{collapse bottom}} --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
* [[HOW-TO:Submit a bug report]]&lt;br /&gt;
* [[Bug tracker]]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
{{Gotham updated}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Trac]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Troubleshooting]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;/div&gt;</summary>
		<author><name>Bs27975</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Help:Editing&amp;diff=82782</id>
		<title>Help:Editing</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Help:Editing&amp;diff=82782"/>
		<updated>2014-12-31T17:17:21Z</updated>

		<summary type="html">&lt;p&gt;Bs27975: Created page with &amp;quot;Reference https://www.mediawiki.org/wiki/Help:Editing&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Reference https://www.mediawiki.org/wiki/Help:Editing&lt;/div&gt;</summary>
		<author><name>Bs27975</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Log_file/Advanced&amp;diff=82781</id>
		<title>Log file/Advanced</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Log_file/Advanced&amp;diff=82781"/>
		<updated>2014-12-31T17:13:07Z</updated>

		<summary type="html">&lt;p&gt;Bs27975: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Troubleshooting]] | [[HOW-TO:Submit a bug report]] | [[Log file]] }}&lt;br /&gt;
&lt;br /&gt;
:{{bigger|&#039;&#039;Not sure what to do, but someone just asked you for a &amp;quot;log file&amp;quot;, &amp;quot;debug log&amp;quot;, or &amp;quot;xbmc.log&amp;quot;? &#039;&#039;&#039;[[Log file/Easy|Click here]].&#039;&#039;&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section being=&amp;quot;intro&amp;quot; /&amp;gt;At some point during your foray into {{kodi}}, you will likely come up against a problem that isn&#039;t made 100% clear from errors in the GUI. This is where the log file comes into play. {{kodi}} writes all sorts of useful stuff to its log, which is why it should be included with every bug/problem report. Don&#039;t be afraid of its contents! Often a quick glance through the log will turn up a simple typo or missing file which you can easily fix on your own.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Log file password warning}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Enable debugging = &amp;lt;!-- odd header levels are used intentionally for better readability on this specific page --&amp;gt;&lt;br /&gt;
If someone asks for a debug log then debugging needs to be enabled. There are three ways to do this:&lt;br /&gt;
&lt;br /&gt;
# Select the enable debug options in the &#039;&#039;&#039;[[#GUI settings|GUI settings]]&#039;&#039;&#039;&lt;br /&gt;
# Use an &#039;&#039;&#039;[[#advancedsettings.xml|advancedsettings.xml]]&#039;&#039;&#039; file&lt;br /&gt;
# Toggle debug logging with a &#039;&#039;&#039;[[#Keyboard or remote shortcut|keyboard or remote shortcut]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== GUI settings ==&lt;br /&gt;
Most users only need to enable debug logging in the GUI.&lt;br /&gt;
&lt;br /&gt;
In {{highlight|bordered=yes|[[Settings/System#Debugging|Settings -&amp;gt; System -&amp;gt; Debugging]]}} toggle the &#039;&#039;&#039;&#039;&#039;Enable debug logging&#039;&#039;&#039;&#039;&#039; setting.&lt;br /&gt;
&lt;br /&gt;
{{#lst:Settings/System|debugging}}&lt;br /&gt;
&lt;br /&gt;
== advancedsettings.xml ==&lt;br /&gt;
{{helix note|Some of this might only apply to the future version, Kodi v14 &amp;quot;Helix&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
You can manually enable debug logging directly using an [[advancedsettings.xml]] file. This is especially useful if {{kodi}} is crashing during start-up and you are unable to turn debugging on via the GUI. The advancedsettings.xml file is simply a plain text document that is saved in the [[userdata folder]] and read when {{kodi}} first starts up. You can use the following examples to enable debug logging:&lt;br /&gt;
&lt;br /&gt;
{{note|Be sure to format this as a &#039;&#039;&#039;plain text&#039;&#039;&#039; document, and make sure it is titled &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt; and make sure the extension is &#039;&#039;just&#039;&#039; &amp;lt;code&amp;gt;.xml&amp;lt;/code&amp;gt; and not something like &amp;quot;.xml.txt&amp;quot; or &amp;quot;.xml.doc&amp;quot;. }}&lt;br /&gt;
&lt;br /&gt;
=== advancedsettings.xml for normal debugging ===&lt;br /&gt;
If you want &#039;&#039;&#039;basic debug logging&#039;&#039;&#039; then use this. This the same as enabling logging in the GUI without enabling component-specific logging. Start with this one first if you are not sure which mode to use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt; &amp;lt;!-- Change this to &amp;quot;1&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== advancedsettings.xml for input devices ===&lt;br /&gt;
&#039;&#039;Useful as you cannot enable debug logging in the GUI if your input devices don&#039;t work.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you only want debug logging with verbose components for &#039;&#039;&#039;input devices&#039;&#039;&#039; (JSON-RPC, CEC, HTTP, for remotes, smart phone remotes, web remotes, etc) then use this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt; &amp;lt;!-- Change this to &amp;quot;1&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
    &amp;lt;debug&amp;gt;&lt;br /&gt;
        &amp;lt;extralogging&amp;gt;true&amp;lt;/extralogging&amp;gt;&lt;br /&gt;
        &amp;lt;setextraloglevel&amp;gt;64,2048,32768&amp;lt;/setextraloglevel&amp;gt;&lt;br /&gt;
        &amp;lt;showloginfo&amp;gt;true&amp;lt;/showloginfo&amp;gt; &amp;lt;!-- Change this to &amp;quot;false&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
    &amp;lt;/debug&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== advancedsettings.xml for everything ===&lt;br /&gt;
If you want debug logging with &#039;&#039;&#039;all verbose components&#039;&#039;&#039; enabled use this.&lt;br /&gt;
&lt;br /&gt;
{{note|Normally, you don&#039;t want to use this one unless specifically asked for it, as it will create a very hard-to-read debug log.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt; &amp;lt;!-- Change this to &amp;quot;1&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
    &amp;lt;debug&amp;gt;&lt;br /&gt;
        &amp;lt;extralogging&amp;gt;true&amp;lt;/extralogging&amp;gt;&lt;br /&gt;
        &amp;lt;setextraloglevel&amp;gt;32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536&amp;lt;/setextraloglevel&amp;gt;&lt;br /&gt;
        &amp;lt;showloginfo&amp;gt;true&amp;lt;/showloginfo&amp;gt;&lt;br /&gt;
    &amp;lt;/debug&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Technical notes ===&lt;br /&gt;
{{collapse top}}&lt;br /&gt;
Everything except the &amp;lt;code&amp;gt;&amp;lt;loglevel&amp;gt;&amp;lt;/code&amp;gt; tag is actually taken from guisettings.xml, but they can be used in the advancedsettings.xml file as a way to manually enable them.&lt;br /&gt;
&lt;br /&gt;
As one can see from the previous sections, individual component logging is set using the &amp;lt;code&amp;gt;&amp;lt;setextraloglevel&amp;gt;&amp;lt;/code&amp;gt; tag. A complete list of the components and their setting value follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Component !! setting value&lt;br /&gt;
|-&lt;br /&gt;
| LOGSAMBA || 32&lt;br /&gt;
|-&lt;br /&gt;
| LOGCURL || 64&lt;br /&gt;
|-&lt;br /&gt;
| LOGCMYTH || 128&lt;br /&gt;
|-&lt;br /&gt;
| LOGFFMPEG || 256&lt;br /&gt;
|-&lt;br /&gt;
| LOGRTMP || 512&lt;br /&gt;
|-&lt;br /&gt;
| LOGDBUS || 1024&lt;br /&gt;
|-&lt;br /&gt;
| LOGJSONRPC || 2048&lt;br /&gt;
|-&lt;br /&gt;
| LOGAUDIO || 4096&lt;br /&gt;
|-&lt;br /&gt;
| LOGAIRTUNES || 8192&lt;br /&gt;
|-&lt;br /&gt;
| LOGUPNP || 16384&lt;br /&gt;
|-&lt;br /&gt;
| LOGCEC || 32768&lt;br /&gt;
|-&lt;br /&gt;
| LOGVIDEO || 65536&lt;br /&gt;
|}&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
== Keyboard or remote shortcut ==&lt;br /&gt;
Since XBMC v12 a keymap.xml file can map a keyboard shortcut or remote control button to toggle debugging using the value &amp;lt;code&amp;gt;toggledebug&amp;lt;/code&amp;gt;. For example, &amp;lt;code&amp;gt;&amp;lt;l&amp;gt;toggledebug&amp;lt;/l&amp;gt;&amp;lt;/code&amp;gt;. See [https://github.com/xbmc/xbmc/pull/1226 here] and &#039;&#039;&#039;[[keymaps]]&#039;&#039;&#039; for more information on how to define a keyboard or remote button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After you have enabled debug logging, please restart {{kodi}} so that the log starts fresh and contains full start-up information.&lt;br /&gt;
&lt;br /&gt;
= So what do I do with this thing? =&lt;br /&gt;
&lt;br /&gt;
Whatever you do, please &#039;&#039;&#039;DO NOT&#039;&#039;&#039; paste it directly into IRC, a forum post or ticket on the bug tracker.  This not only clutters said text, but the log is nearly impossible to read like this.  If your log file is too big for the following methods, please restart {{kodi}} to start a clean log file file, recreate the problem in as few steps as possible, then stop {{kodi}} and try again.  If it is still too large, try disabling features such as &amp;quot;scan library on startup&amp;quot;, which spam&#039;s a lot of info to the log (unless of course this is where the problem is).&lt;br /&gt;
&lt;br /&gt;
:{{note|{{big|&#039;&#039;&#039;Always include the whole debug log.&#039;&#039;&#039; Don&#039;t assume which portions of the log are relevant or not. }} }}&lt;br /&gt;
&lt;br /&gt;
:{{note|Make sure you have enabled &amp;quot;debug logging&amp;quot;. The normal log file, without debugging enabled, is almost always useless when it comes to troubleshooting!}}&lt;br /&gt;
&lt;br /&gt;
=== In the forums and IRC ===&lt;br /&gt;
Use a pastesite such as http://xbmclogs.com , http://pastebin.com , or http://pastebin.ca on when posting on the forums.  Simply visit one of these sites, paste or upload your log and hit submit.  After a few seconds you&#039;ll have a nice short URL to paste in your post.  Be sure to select an appropriate time to keep your paste around when submitting!&lt;br /&gt;
&lt;br /&gt;
=== On the bug tracker ===&lt;br /&gt;
Just upload the log to your ticket as an attachment.  &#039;&#039;&#039;DO NOT&#039;&#039;&#039; archive (zip,rar,tar,etc) it in anyway!  Trac will let us view it right on the site without downloading.&lt;br /&gt;
&lt;br /&gt;
=== Watch it locally, perhaps spotting errors you can fix or report ===&lt;br /&gt;
Using &#039;tail -f {location}&#039; you can watch the log from a cmd/console (better with 2 displays), or better, via ssh (won&#039;t distract the gui).&lt;br /&gt;
&lt;br /&gt;
= Log files =&lt;br /&gt;
* &#039;&#039;&#039;kodi.log&#039;&#039;&#039; or &#039;&#039;&#039;xbmc.log&#039;&#039;&#039; - This is the log file of most recent (or currently running) {{kodi}} session.&lt;br /&gt;
* &#039;&#039;&#039;kodi.old.log&#039;&#039;&#039; or &#039;&#039;&#039;xbmc.old.log&#039;&#039;&#039; - This is the log file from the last XBMC session.  If {{kodi}} crashes AND you have restarted it before viewing the log, this is the one you want.&lt;br /&gt;
&lt;br /&gt;
=== Location ===&lt;br /&gt;
&#039;&#039;kodi.log&#039;&#039; {{small|(or &#039;&#039;xbmc.log&#039;&#039;)}} and &#039;&#039;kodi.old.log&#039;&#039; {{small|(or &#039;&#039;xbmc.old.log&#039;&#039;)}} are located here, depending on your platform:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; &lt;br /&gt;
! style=&amp;quot;background: lightgrey; width: 150px&amp;quot; | &#039;&#039;&#039;Operative system&#039;&#039;&#039; &lt;br /&gt;
! style=&amp;quot;background: lightgrey; width: 700px&amp;quot; | &#039;&#039;&#039;File/Folder Paths&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=2 | {{Helix note|Directories and files named &amp;lt;code&amp;gt;&#039;&#039;&#039;xbmc&#039;&#039;&#039;&amp;lt;/code&amp;gt; will be renamed to &amp;lt;code&amp;gt;&#039;&#039;&#039;kodi&#039;&#039;&#039;&amp;lt;/code&amp;gt; as part of the project rename starting in v14.}}&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Android&#039;&#039;&#039;  || {{note|The first folder might be different on various devices:}} &amp;lt;code&amp;gt;&#039;&#039;&amp;lt;data/sdcard/Android&amp;gt;&#039;&#039;/data/org.xbmc.xbmc/cache/temp/xbmc.log&amp;lt;/code&amp;gt;&lt;br /&gt;
or  &amp;lt;code&amp;gt;/sdcard/Android/data/org.xbmc.xbmc/files/.xbmc/temp/xbmc.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;iOS/ATV2&#039;&#039;&#039; || &amp;lt;code&amp;gt;/private/var/mobile/Library/Preferences/xbmc.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Linux&#039;&#039;&#039; || &amp;lt;code&amp;gt;$HOME/.kodi/temp/kodi.log&amp;lt;/code&amp;gt; &#039;&#039;(or &amp;lt;code&amp;gt;$HOME/.xbmc/temp/xbmc.log)&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mac OS X&#039;&#039;&#039; || &amp;lt;code&amp;gt;/Users/&#039;&#039;&amp;lt;username&amp;gt;&#039;&#039;/Library/Logs/xbmc.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Windows&#039;&#039;&#039; || &amp;lt;code&amp;gt;%APPDATA%\XBMC\xbmc.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[[Special protocol]]&#039;&#039;&#039; || &amp;lt;code&amp;gt;special://logpath (this can be used by scripts)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See &#039;&#039;&#039;[[Log file/File manager access]]&#039;&#039;&#039; for how to copy the debug log file using the [[File manager]].&lt;br /&gt;
&lt;br /&gt;
= Easy ways to get and post the log file =&lt;br /&gt;
=== Debug log add-on ===&lt;br /&gt;
{{main|Log file/Easy}}&lt;br /&gt;
You can use the &#039;&#039;&#039;[[Add-on:XBMC Log Uploader|XBMC Log Uploader]]&#039;&#039;&#039; to make the process of getting your debug log easier.&lt;br /&gt;
&lt;br /&gt;
=== Automatic pastebin log in Linux via command line ===&lt;br /&gt;
You can generate a debug.log [http://en.wikipedia.org/wiki/Pastebin Pastebin] link automatically quickly to post anywhere that requires a debug.log.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See also:&#039;&#039;&#039;&#039;&#039; [[SSH|Accessing XBMC via SSH]] e.g. Putty&lt;br /&gt;
&lt;br /&gt;
:{{note|Don&#039;t forget to [[#Enable debugging|enable debugging]]}}&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pastebinit -y&lt;br /&gt;
&lt;br /&gt;
cat $HOME/.kodi/temp/kodi.log | pastebinit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;(or cat $HOME/.xbmc/temp/xbmc.log | pastebinit)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Submit the link you get in any forums discussion where you post about &#039;&#039;&#039;any&#039;&#039;&#039; problem.&lt;br /&gt;
&lt;br /&gt;
= Technical details about log files =&lt;br /&gt;
{{Editor note|This section might be outdated now that {{kodi}} has component-level logging. Some of it should still be true, but just keep in mind that this section hasn&#039;t been totally cleaned up for v13 and v14 yet.}}&lt;br /&gt;
{{collapse top}}&lt;br /&gt;
=== Layout ===&lt;br /&gt;
Each event is logged to one line of the {{kodi}} log file which is formatted as follows...&lt;br /&gt;
&amp;lt;pre&amp;gt;[TIMESTAMP] T:[THREADID] M:[FREEMEM] [LEVEL]: [MESSAGE]&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;TIMESTAMP&#039;&#039;&#039; - The wall time at which the event occurred.&lt;br /&gt;
* &#039;&#039;&#039;THREADID&#039;&#039;&#039; - The thread identification number of the thread in which the event occurred.&lt;br /&gt;
* &#039;&#039;&#039;FREEMEM&#039;&#039;&#039; - The amount of memory (in bytes) free at the time of the event.&lt;br /&gt;
* &#039;&#039;&#039;LEVEL&#039;&#039;&#039; - The severity of the event.&lt;br /&gt;
* &#039;&#039;&#039;MESSAGE&#039;&#039;&#039; - A brief description and/or important information about the event.&lt;br /&gt;
&lt;br /&gt;
=== Log levels ===&lt;br /&gt;
There are two different types levels when talking about the {{kodi}} log.  The first is the severity of event that has occurred.  The second controls which severity levels are actually printed out to the log.&lt;br /&gt;
&lt;br /&gt;
;Severity levels&lt;br /&gt;
In order from least to most severe...&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039; - In depth information about the status of {{kodi}}.  This information can pretty much only be deciphered by a developer or long time {{kodi}} power user.&lt;br /&gt;
* &#039;&#039;&#039;INFO&#039;&#039;&#039; - Something has happened.  It&#039;s not a problem, we just thought you might want to know.  Fairly excessive output that most people won&#039;t care about.&lt;br /&gt;
* &#039;&#039;&#039;NOTICE&#039;&#039;&#039; - Similar to INFO but the average Joe might want to know about these events.  This level and above are logged by default.&lt;br /&gt;
* &#039;&#039;&#039;WARNING&#039;&#039;&#039; - Something potentially bad has happened.  If {{kodi}} did something you didn&#039;t expect, this is probably why.  Watch for errors to follow.&lt;br /&gt;
* &#039;&#039;&#039;ERROR&#039;&#039;&#039; - This event is bad.  Something has failed.  You likely noticed problems with the application be it skin artifacts, failure of playback a crash, etc.&lt;br /&gt;
* &#039;&#039;&#039;FATAL&#039;&#039;&#039; - We&#039;re screwed.  {{kodi}} is about to crash.&lt;br /&gt;
&lt;br /&gt;
;Log file control levels&lt;br /&gt;
In order from least to most information provided...&lt;br /&gt;
* &#039;&#039;&#039;None&#039;&#039;&#039; - No logging will occur.  &#039;&#039;xbmc.log&#039;&#039; will likely be created but should remain empty.&lt;br /&gt;
* &#039;&#039;&#039;Normal&#039;&#039;&#039; - The default loglevel.  Events with a severity of NOTICE or greater will be logged.&lt;br /&gt;
* &#039;&#039;&#039;Debug&#039;&#039;&#039; - All events are logged.  This level (or higher) is all that you should bother someone else with.&lt;br /&gt;
* &#039;&#039;&#039;Debug w/ Visuals&#039;&#039;&#039; - Same printed log as &#039;&#039;Debug&#039;&#039;, but free memory and CPU usage are rendered on the screen as well.&lt;br /&gt;
* &#039;&#039;&#039;SMB Debug&#039;&#039;&#039; - Same as &#039;&#039;Debug w/ Visuals&#039;&#039; with the addition of ridiculous amounts of Samba debugging info.  Use this only if asked.&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
* [[HOW-TO:Submit a bug report]]&lt;br /&gt;
* [[Bug tracker]]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
{{Gotham updated}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Trac]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Troubleshooting]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;/div&gt;</summary>
		<author><name>Bs27975</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Log_file/Advanced&amp;diff=82780</id>
		<title>Log file/Advanced</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Log_file/Advanced&amp;diff=82780"/>
		<updated>2014-12-31T17:06:54Z</updated>

		<summary type="html">&lt;p&gt;Bs27975: Caught a few xbmc -&amp;gt; kodi changes. There are more, but I have no direct experience with those platforms. Also ... my experience was showloginfo -&amp;gt; false in advancesyssettings before screen updates actually got turned off. Added notation for tail -f.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Troubleshooting]] | [[HOW-TO:Submit a bug report]] | [[Log file]] }}&lt;br /&gt;
&lt;br /&gt;
:{{bigger|&#039;&#039;Not sure what to do, but someone just asked you for a &amp;quot;log file&amp;quot;, &amp;quot;debug log&amp;quot;, or &amp;quot;xbmc.log&amp;quot;? &#039;&#039;&#039;[[Log file/Easy|Click here]].&#039;&#039;&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section being=&amp;quot;intro&amp;quot; /&amp;gt;At some point during your foray into {{kodi}}, you will likely come up against a problem that isn&#039;t made 100% clear from errors in the GUI. This is where the log file comes into play. {{kodi}} writes all sorts of useful stuff to its log, which is why it should be included with every bug/problem report. Don&#039;t be afraid of its contents! Often a quick glance through the log will turn up a simple typo or missing file which you can easily fix on your own.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Log file password warning}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Enable debugging = &amp;lt;!-- odd header levels are used intentionally for better readability on this specific page --&amp;gt;&lt;br /&gt;
If someone asks for a debug log then debugging needs to be enabled. There are three ways to do this:&lt;br /&gt;
&lt;br /&gt;
# Select the enable debug options in the &#039;&#039;&#039;[[#GUI settings|GUI settings]]&#039;&#039;&#039;&lt;br /&gt;
# Use an &#039;&#039;&#039;[[#advancedsettings.xml|advancedsettings.xml]]&#039;&#039;&#039; file&lt;br /&gt;
# Toggle debug logging with a &#039;&#039;&#039;[[#Keyboard or remote shortcut|keyboard or remote shortcut]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== GUI settings ==&lt;br /&gt;
Most users only need to enable debug logging in the GUI.&lt;br /&gt;
&lt;br /&gt;
In {{highlight|bordered=yes|[[Settings/System#Debugging|Settings -&amp;gt; System -&amp;gt; Debugging]]}} toggle the &#039;&#039;&#039;&#039;&#039;Enable debug logging&#039;&#039;&#039;&#039;&#039; setting.&lt;br /&gt;
&lt;br /&gt;
{{#lst:Settings/System|debugging}}&lt;br /&gt;
&lt;br /&gt;
== advancedsettings.xml ==&lt;br /&gt;
{{helix note|Some of this might only apply to the future version, Kodi v14 &amp;quot;Helix&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
You can manually enable debug logging directly using an [[advancedsettings.xml]] file. This is especially useful if {{kodi}} is crashing during start-up and you are unable to turn debugging on via the GUI. The advancedsettings.xml file is simply a plain text document that is saved in the [[userdata folder]] and read when {{kodi}} first starts up. You can use the following examples to enable debug logging:&lt;br /&gt;
&lt;br /&gt;
{{note|Be sure to format this as a &#039;&#039;&#039;plain text&#039;&#039;&#039; document, and make sure it is titled &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt; and make sure the extension is &#039;&#039;just&#039;&#039; &amp;lt;code&amp;gt;.xml&amp;lt;/code&amp;gt; and not something like &amp;quot;.xml.txt&amp;quot; or &amp;quot;.xml.doc&amp;quot;. }}&lt;br /&gt;
&lt;br /&gt;
=== advancedsettings.xml for normal debugging ===&lt;br /&gt;
If you want &#039;&#039;&#039;basic debug logging&#039;&#039;&#039; then use this. This the same as enabling logging in the GUI without enabling component-specific logging. Start with this one first if you are not sure which mode to use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt; &amp;lt;!-- Change this to &amp;quot;1&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== advancedsettings.xml for input devices ===&lt;br /&gt;
&#039;&#039;Useful as you cannot enable debug logging in the GUI if your input devices don&#039;t work.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you only want debug logging with verbose components for &#039;&#039;&#039;input devices&#039;&#039;&#039; (JSON-RPC, CEC, HTTP, for remotes, smart phone remotes, web remotes, etc) then use this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt; &amp;lt;!-- Change this to &amp;quot;1&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
    &amp;lt;debug&amp;gt;&lt;br /&gt;
        &amp;lt;extralogging&amp;gt;true&amp;lt;/extralogging&amp;gt;&lt;br /&gt;
        &amp;lt;setextraloglevel&amp;gt;64,2048,32768&amp;lt;/setextraloglevel&amp;gt;&lt;br /&gt;
        &amp;lt;showloginfo&amp;gt;true&amp;lt;/showloginfo&amp;gt; &amp;lt;!-- Change this to &amp;quot;false&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
    &amp;lt;/debug&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== advancedsettings.xml for everything ===&lt;br /&gt;
If you want debug logging with &#039;&#039;&#039;all verbose components&#039;&#039;&#039; enabled use this.&lt;br /&gt;
&lt;br /&gt;
{{note|Normally, you don&#039;t want to use this one unless specifically asked for it, as it will create a very hard-to-read debug log.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt; &amp;lt;!-- Change this to &amp;quot;1&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
    &amp;lt;debug&amp;gt;&lt;br /&gt;
        &amp;lt;extralogging&amp;gt;true&amp;lt;/extralogging&amp;gt;&lt;br /&gt;
        &amp;lt;setextraloglevel&amp;gt;32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536&amp;lt;/setextraloglevel&amp;gt;&lt;br /&gt;
        &amp;lt;showloginfo&amp;gt;true&amp;lt;/showloginfo&amp;gt;&lt;br /&gt;
    &amp;lt;/debug&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Technical notes ===&lt;br /&gt;
{{collapse top}}&lt;br /&gt;
Everything except the &amp;lt;code&amp;gt;&amp;lt;loglevel&amp;gt;&amp;lt;/code&amp;gt; tag is actually taken from guisettings.xml, but they can be used in the advancedsettings.xml file as a way to manually enable them.&lt;br /&gt;
&lt;br /&gt;
As one can see from the previous sections, individual component logging is set using the &amp;lt;code&amp;gt;&amp;lt;setextraloglevel&amp;gt;&amp;lt;/code&amp;gt; tag. A complete list of the components and their setting value follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Component !! setting value&lt;br /&gt;
|-&lt;br /&gt;
| LOGSAMBA || 32&lt;br /&gt;
|-&lt;br /&gt;
| LOGCURL || 64&lt;br /&gt;
|-&lt;br /&gt;
| LOGCMYTH || 128&lt;br /&gt;
|-&lt;br /&gt;
| LOGFFMPEG || 256&lt;br /&gt;
|-&lt;br /&gt;
| LOGRTMP || 512&lt;br /&gt;
|-&lt;br /&gt;
| LOGDBUS || 1024&lt;br /&gt;
|-&lt;br /&gt;
| LOGJSONRPC || 2048&lt;br /&gt;
|-&lt;br /&gt;
| LOGAUDIO || 4096&lt;br /&gt;
|-&lt;br /&gt;
| LOGAIRTUNES || 8192&lt;br /&gt;
|-&lt;br /&gt;
| LOGUPNP || 16384&lt;br /&gt;
|-&lt;br /&gt;
| LOGCEC || 32768&lt;br /&gt;
|-&lt;br /&gt;
| LOGVIDEO || 65536&lt;br /&gt;
|}&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
== Keyboard or remote shortcut ==&lt;br /&gt;
Since XBMC v12 a keymap.xml file can map a keyboard shortcut or remote control button to toggle debugging using the value &amp;lt;code&amp;gt;toggledebug&amp;lt;/code&amp;gt;. For example, &amp;lt;code&amp;gt;&amp;lt;l&amp;gt;toggledebug&amp;lt;/l&amp;gt;&amp;lt;/code&amp;gt;. See [https://github.com/xbmc/xbmc/pull/1226 here] and &#039;&#039;&#039;[[keymaps]]&#039;&#039;&#039; for more information on how to define a keyboard or remote button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After you have enabled debug logging, please restart {{kodi}} so that the log starts fresh and contains full start-up information.&lt;br /&gt;
&lt;br /&gt;
= So what do I do with this thing? =&lt;br /&gt;
&lt;br /&gt;
Whatever you do, please &#039;&#039;&#039;DO NOT&#039;&#039;&#039; paste it directly into IRC, a forum post or ticket on the bug tracker.  This not only clutters said text, but the log is nearly impossible to read like this.  If your log file is too big for the following methods, please restart {{kodi}} to start a clean log file file, recreate the problem in as few steps as possible, then stop {{kodi}} and try again.  If it is still too large, try disabling features such as &amp;quot;scan library on startup&amp;quot;, which spam&#039;s a lot of info to the log (unless of course this is where the problem is).&lt;br /&gt;
&lt;br /&gt;
:{{note|{{big|&#039;&#039;&#039;Always include the whole debug log.&#039;&#039;&#039; Don&#039;t assume which portions of the log are relevant or not. }} }}&lt;br /&gt;
&lt;br /&gt;
:{{note|Make sure you have enabled &amp;quot;debug logging&amp;quot;. The normal log file, without debugging enabled, is almost always useless when it comes to troubleshooting!}}&lt;br /&gt;
&lt;br /&gt;
=== In the forums and IRC ===&lt;br /&gt;
Use a pastesite such as http://xbmclogs.com , http://pastebin.com , or http://pastebin.ca on when posting on the forums.  Simply visit one of these sites, paste or upload your log and hit submit.  After a few seconds you&#039;ll have a nice short URL to paste in your post.  Be sure to select an appropriate time to keep your paste around when submitting!&lt;br /&gt;
&lt;br /&gt;
=== On the bug tracker ===&lt;br /&gt;
Just upload the log to your ticket as an attachment.  &#039;&#039;&#039;DO NOT&#039;&#039;&#039; archive (zip,rar,tar,etc) it in anyway!  Trac will let us view it right on the site without downloading.&lt;br /&gt;
&lt;br /&gt;
=== Watch it locally, perhaps spotting errors you can fix or report ===&lt;br /&gt;
Using &amp;lt;pre&amp;gt;tail -f {location}&amp;lt;/pre&amp;gt; you can watch the log from a cmd/console (better with 2 displays), or better, via ssh (won&#039;t distract the gui).&lt;br /&gt;
&lt;br /&gt;
= Log files =&lt;br /&gt;
* &#039;&#039;&#039;kodi.log&#039;&#039;&#039; or &#039;&#039;&#039;xbmc.log&#039;&#039;&#039; - This is the log file of most recent (or currently running) {{kodi}} session.&lt;br /&gt;
* &#039;&#039;&#039;kodi.old.log&#039;&#039;&#039; or &#039;&#039;&#039;xbmc.old.log&#039;&#039;&#039; - This is the log file from the last XBMC session.  If {{kodi}} crashes AND you have restarted it before viewing the log, this is the one you want.&lt;br /&gt;
&lt;br /&gt;
=== Location ===&lt;br /&gt;
&#039;&#039;kodi.log&#039;&#039; {{small|(or &#039;&#039;xbmc.log&#039;&#039;)}} and &#039;&#039;kodi.old.log&#039;&#039; {{small|(or &#039;&#039;xbmc.old.log&#039;&#039;)}} are located here, depending on your platform:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; &lt;br /&gt;
! style=&amp;quot;background: lightgrey; width: 150px&amp;quot; | &#039;&#039;&#039;Operative system&#039;&#039;&#039; &lt;br /&gt;
! style=&amp;quot;background: lightgrey; width: 700px&amp;quot; | &#039;&#039;&#039;File/Folder Paths&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=2 | {{Helix note|Directories and files named &amp;lt;code&amp;gt;&#039;&#039;&#039;xbmc&#039;&#039;&#039;&amp;lt;/code&amp;gt; will be renamed to &amp;lt;code&amp;gt;&#039;&#039;&#039;kodi&#039;&#039;&#039;&amp;lt;/code&amp;gt; as part of the project rename starting in v14.}}&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Android&#039;&#039;&#039;  || {{note|The first folder might be different on various devices:}} &amp;lt;code&amp;gt;&#039;&#039;&amp;lt;data/sdcard/Android&amp;gt;&#039;&#039;/data/org.xbmc.xbmc/cache/temp/xbmc.log&amp;lt;/code&amp;gt;&lt;br /&gt;
or  &amp;lt;code&amp;gt;/sdcard/Android/data/org.xbmc.xbmc/files/.xbmc/temp/xbmc.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;iOS/ATV2&#039;&#039;&#039; || &amp;lt;code&amp;gt;/private/var/mobile/Library/Preferences/xbmc.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Linux&#039;&#039;&#039; || &amp;lt;code&amp;gt;$HOME/.kodi/temp/kodi.log&amp;lt;/code&amp;gt; &#039;&#039;(or &amp;lt;code&amp;gt;$HOME/.xbmc/temp/xbmc.log)&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mac OS X&#039;&#039;&#039; || &amp;lt;code&amp;gt;/Users/&#039;&#039;&amp;lt;username&amp;gt;&#039;&#039;/Library/Logs/xbmc.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Windows&#039;&#039;&#039; || &amp;lt;code&amp;gt;%APPDATA%\XBMC\xbmc.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[[Special protocol]]&#039;&#039;&#039; || &amp;lt;code&amp;gt;special://logpath (this can be used by scripts)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See &#039;&#039;&#039;[[Log file/File manager access]]&#039;&#039;&#039; for how to copy the debug log file using the [[File manager]].&lt;br /&gt;
&lt;br /&gt;
= Easy ways to get and post the log file =&lt;br /&gt;
=== Debug log add-on ===&lt;br /&gt;
{{main|Log file/Easy}}&lt;br /&gt;
You can use the &#039;&#039;&#039;[[Add-on:XBMC Log Uploader|XBMC Log Uploader]]&#039;&#039;&#039; to make the process of getting your debug log easier.&lt;br /&gt;
&lt;br /&gt;
=== Automatic pastebin log in Linux via command line ===&lt;br /&gt;
You can generate a debug.log [http://en.wikipedia.org/wiki/Pastebin Pastebin] link automatically quickly to post anywhere that requires a debug.log.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See also:&#039;&#039;&#039;&#039;&#039; [[SSH|Accessing XBMC via SSH]] e.g. Putty&lt;br /&gt;
&lt;br /&gt;
:{{note|Don&#039;t forget to [[#Enable debugging|enable debugging]]}}&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pastebinit -y&lt;br /&gt;
&lt;br /&gt;
cat $HOME/.kodi/temp/kodi.log | pastebinit&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;(or cat $HOME/.xbmc/temp/xbmc.log | pastebinit)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Submit the link you get in any forums discussion where you post about &#039;&#039;&#039;any&#039;&#039;&#039; problem.&lt;br /&gt;
&lt;br /&gt;
= Technical details about log files =&lt;br /&gt;
{{Editor note|This section might be outdated now that {{kodi}} has component-level logging. Some of it should still be true, but just keep in mind that this section hasn&#039;t been totally cleaned up for v13 and v14 yet.}}&lt;br /&gt;
{{collapse top}}&lt;br /&gt;
=== Layout ===&lt;br /&gt;
Each event is logged to one line of the {{kodi}} log file which is formatted as follows...&lt;br /&gt;
&amp;lt;pre&amp;gt;[TIMESTAMP] T:[THREADID] M:[FREEMEM] [LEVEL]: [MESSAGE]&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;TIMESTAMP&#039;&#039;&#039; - The wall time at which the event occurred.&lt;br /&gt;
* &#039;&#039;&#039;THREADID&#039;&#039;&#039; - The thread identification number of the thread in which the event occurred.&lt;br /&gt;
* &#039;&#039;&#039;FREEMEM&#039;&#039;&#039; - The amount of memory (in bytes) free at the time of the event.&lt;br /&gt;
* &#039;&#039;&#039;LEVEL&#039;&#039;&#039; - The severity of the event.&lt;br /&gt;
* &#039;&#039;&#039;MESSAGE&#039;&#039;&#039; - A brief description and/or important information about the event.&lt;br /&gt;
&lt;br /&gt;
=== Log levels ===&lt;br /&gt;
There are two different types levels when talking about the {{kodi}} log.  The first is the severity of event that has occurred.  The second controls which severity levels are actually printed out to the log.&lt;br /&gt;
&lt;br /&gt;
;Severity levels&lt;br /&gt;
In order from least to most severe...&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039; - In depth information about the status of {{kodi}}.  This information can pretty much only be deciphered by a developer or long time {{kodi}} power user.&lt;br /&gt;
* &#039;&#039;&#039;INFO&#039;&#039;&#039; - Something has happened.  It&#039;s not a problem, we just thought you might want to know.  Fairly excessive output that most people won&#039;t care about.&lt;br /&gt;
* &#039;&#039;&#039;NOTICE&#039;&#039;&#039; - Similar to INFO but the average Joe might want to know about these events.  This level and above are logged by default.&lt;br /&gt;
* &#039;&#039;&#039;WARNING&#039;&#039;&#039; - Something potentially bad has happened.  If {{kodi}} did something you didn&#039;t expect, this is probably why.  Watch for errors to follow.&lt;br /&gt;
* &#039;&#039;&#039;ERROR&#039;&#039;&#039; - This event is bad.  Something has failed.  You likely noticed problems with the application be it skin artifacts, failure of playback a crash, etc.&lt;br /&gt;
* &#039;&#039;&#039;FATAL&#039;&#039;&#039; - We&#039;re screwed.  {{kodi}} is about to crash.&lt;br /&gt;
&lt;br /&gt;
;Log file control levels&lt;br /&gt;
In order from least to most information provided...&lt;br /&gt;
* &#039;&#039;&#039;None&#039;&#039;&#039; - No logging will occur.  &#039;&#039;xbmc.log&#039;&#039; will likely be created but should remain empty.&lt;br /&gt;
* &#039;&#039;&#039;Normal&#039;&#039;&#039; - The default loglevel.  Events with a severity of NOTICE or greater will be logged.&lt;br /&gt;
* &#039;&#039;&#039;Debug&#039;&#039;&#039; - All events are logged.  This level (or higher) is all that you should bother someone else with.&lt;br /&gt;
* &#039;&#039;&#039;Debug w/ Visuals&#039;&#039;&#039; - Same printed log as &#039;&#039;Debug&#039;&#039;, but free memory and CPU usage are rendered on the screen as well.&lt;br /&gt;
* &#039;&#039;&#039;SMB Debug&#039;&#039;&#039; - Same as &#039;&#039;Debug w/ Visuals&#039;&#039; with the addition of ridiculous amounts of Samba debugging info.  Use this only if asked.&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
* [[HOW-TO:Submit a bug report]]&lt;br /&gt;
* [[Bug tracker]]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
{{Gotham updated}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Trac]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Troubleshooting]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;/div&gt;</summary>
		<author><name>Bs27975</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Log_file/Advanced&amp;diff=82779</id>
		<title>Log file/Advanced</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Log_file/Advanced&amp;diff=82779"/>
		<updated>2014-12-31T16:51:01Z</updated>

		<summary type="html">&lt;p&gt;Bs27975: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{mininav| [[Troubleshooting]] | [[HOW-TO:Submit a bug report]] | [[Log file]] }}&lt;br /&gt;
&lt;br /&gt;
:{{bigger|&#039;&#039;Not sure what to do, but someone just asked you for a &amp;quot;log file&amp;quot;, &amp;quot;debug log&amp;quot;, or &amp;quot;xbmc.log&amp;quot;? &#039;&#039;&#039;[[Log file/Easy|Click here]].&#039;&#039;&#039;&#039;&#039;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;section being=&amp;quot;intro&amp;quot; /&amp;gt;At some point during your foray into {{kodi}}, you will likely come up against a problem that isn&#039;t made 100% clear from errors in the GUI. This is where the log file comes into play. {{kodi}} writes all sorts of useful stuff to its log, which is why it should be included with every bug/problem report. Don&#039;t be afraid of its contents! Often a quick glance through the log will turn up a simple typo or missing file which you can easily fix on your own.&amp;lt;section end=&amp;quot;intro&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Log file password warning}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Enable debugging = &amp;lt;!-- odd header levels are used intentionally for better readability on this specific page --&amp;gt;&lt;br /&gt;
If someone asks for a debug log then debugging needs to be enabled. There are three ways to do this:&lt;br /&gt;
&lt;br /&gt;
# Select the enable debug options in the &#039;&#039;&#039;[[#GUI settings|GUI settings]]&#039;&#039;&#039;&lt;br /&gt;
# Use an &#039;&#039;&#039;[[#advancedsettings.xml|advancedsettings.xml]]&#039;&#039;&#039; file&lt;br /&gt;
# Toggle debug logging with a &#039;&#039;&#039;[[#Keyboard or remote shortcut|keyboard or remote shortcut]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== GUI settings ==&lt;br /&gt;
Most users only need to enable debug logging in the GUI.&lt;br /&gt;
&lt;br /&gt;
In {{highlight|bordered=yes|[[Settings/System#Debugging|Settings -&amp;gt; System -&amp;gt; Debugging]]}} toggle the &#039;&#039;&#039;&#039;&#039;Enable debug logging&#039;&#039;&#039;&#039;&#039; setting.&lt;br /&gt;
&lt;br /&gt;
{{#lst:Settings/System|debugging}}&lt;br /&gt;
&lt;br /&gt;
== advancedsettings.xml ==&lt;br /&gt;
{{helix note|Some of this might only apply to the future version, Kodi v14 &amp;quot;Helix&amp;quot;.}}&lt;br /&gt;
&lt;br /&gt;
You can manually enable debug logging directly using an [[advancedsettings.xml]] file. This is especially useful if {{kodi}} is crashing during start-up and you are unable to turn debugging on via the GUI. The advancedsettings.xml file is simply a plain text document that is saved in the [[userdata folder]] and read when {{kodi}} first starts up. You can use the following examples to enable debug logging:&lt;br /&gt;
&lt;br /&gt;
{{note|Be sure to format this as a &#039;&#039;&#039;plain text&#039;&#039;&#039; document, and make sure it is titled &amp;lt;code&amp;gt;advancedsettings.xml&amp;lt;/code&amp;gt; and make sure the extension is &#039;&#039;just&#039;&#039; &amp;lt;code&amp;gt;.xml&amp;lt;/code&amp;gt; and not something like &amp;quot;.xml.txt&amp;quot; or &amp;quot;.xml.doc&amp;quot;. }}&lt;br /&gt;
&lt;br /&gt;
=== advancedsettings.xml for normal debugging ===&lt;br /&gt;
If you want &#039;&#039;&#039;basic debug logging&#039;&#039;&#039; then use this. This the same as enabling logging in the GUI without enabling component-specific logging. Start with this one first if you are not sure which mode to use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt; &amp;lt;!-- Change this to &amp;quot;1&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== advancedsettings.xml for input devices ===&lt;br /&gt;
&#039;&#039;Useful as you cannot enable debug logging in the GUI if your input devices don&#039;t work.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you only want debug logging with verbose components for &#039;&#039;&#039;input devices&#039;&#039;&#039; (JSON-RPC, CEC, HTTP, for remotes, smart phone remotes, web remotes, etc) then use this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt; &amp;lt;!-- Change this to &amp;quot;1&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
    &amp;lt;debug&amp;gt;&lt;br /&gt;
        &amp;lt;extralogging&amp;gt;true&amp;lt;/extralogging&amp;gt;&lt;br /&gt;
        &amp;lt;setextraloglevel&amp;gt;64,2048,32768&amp;lt;/setextraloglevel&amp;gt;&lt;br /&gt;
        &amp;lt;showloginfo&amp;gt;true&amp;lt;/showloginfo&amp;gt; &amp;lt;!-- Change this to &amp;quot;false&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
    &amp;lt;/debug&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== advancedsettings.xml for everything ===&lt;br /&gt;
If you want debug logging with &#039;&#039;&#039;all verbose components&#039;&#039;&#039; enabled use this.&lt;br /&gt;
&lt;br /&gt;
{{note|Normally, you don&#039;t want to use this one unless specifically asked for it, as it will create a very hard-to-read debug log.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;advancedsettings&amp;gt;&lt;br /&gt;
    &amp;lt;loglevel&amp;gt;2&amp;lt;/loglevel&amp;gt; &amp;lt;!-- Change this to &amp;quot;1&amp;quot; to hide the on-screen debug log text --&amp;gt;&lt;br /&gt;
    &amp;lt;debug&amp;gt;&lt;br /&gt;
        &amp;lt;extralogging&amp;gt;true&amp;lt;/extralogging&amp;gt;&lt;br /&gt;
        &amp;lt;setextraloglevel&amp;gt;32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536&amp;lt;/setextraloglevel&amp;gt;&lt;br /&gt;
        &amp;lt;showloginfo&amp;gt;true&amp;lt;/showloginfo&amp;gt;&lt;br /&gt;
    &amp;lt;/debug&amp;gt;&lt;br /&gt;
&amp;lt;/advancedsettings&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Technical notes ===&lt;br /&gt;
{{collapse top}}&lt;br /&gt;
Everything except the &amp;lt;code&amp;gt;&amp;lt;loglevel&amp;gt;&amp;lt;/code&amp;gt; tag is actually taken from guisettings.xml, but they can be used in the advancedsettings.xml file as a way to manually enable them.&lt;br /&gt;
&lt;br /&gt;
As one can see from the previous sections, individual component logging is set using the &amp;lt;code&amp;gt;&amp;lt;setextraloglevel&amp;gt;&amp;lt;/code&amp;gt; tag. A complete list of the components and their setting value follows:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Component !! setting value&lt;br /&gt;
|-&lt;br /&gt;
| LOGSAMBA || 32&lt;br /&gt;
|-&lt;br /&gt;
| LOGCURL || 64&lt;br /&gt;
|-&lt;br /&gt;
| LOGCMYTH || 128&lt;br /&gt;
|-&lt;br /&gt;
| LOGFFMPEG || 256&lt;br /&gt;
|-&lt;br /&gt;
| LOGRTMP || 512&lt;br /&gt;
|-&lt;br /&gt;
| LOGDBUS || 1024&lt;br /&gt;
|-&lt;br /&gt;
| LOGJSONRPC || 2048&lt;br /&gt;
|-&lt;br /&gt;
| LOGAUDIO || 4096&lt;br /&gt;
|-&lt;br /&gt;
| LOGAIRTUNES || 8192&lt;br /&gt;
|-&lt;br /&gt;
| LOGUPNP || 16384&lt;br /&gt;
|-&lt;br /&gt;
| LOGCEC || 32768&lt;br /&gt;
|-&lt;br /&gt;
| LOGVIDEO || 65536&lt;br /&gt;
|}&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
== Keyboard or remote shortcut ==&lt;br /&gt;
Since XBMC v12 a keymap.xml file can map a keyboard shortcut or remote control button to toggle debugging using the value &amp;lt;code&amp;gt;toggledebug&amp;lt;/code&amp;gt;. For example, &amp;lt;code&amp;gt;&amp;lt;l&amp;gt;toggledebug&amp;lt;/l&amp;gt;&amp;lt;/code&amp;gt;. See [https://github.com/xbmc/xbmc/pull/1226 here] and &#039;&#039;&#039;[[keymaps]]&#039;&#039;&#039; for more information on how to define a keyboard or remote button.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After you have enabled debug logging, please restart {{kodi}} so that the log starts fresh and contains full start-up information.&lt;br /&gt;
&lt;br /&gt;
= So what do I do with this thing? =&lt;br /&gt;
&lt;br /&gt;
Whatever you do, please &#039;&#039;&#039;DO NOT&#039;&#039;&#039; paste it directly into IRC, a forum post or ticket on the bug tracker.  This not only clutters said text, but the log is nearly impossible to read like this.  If your log file is too big for the following methods, please restart {{kodi}} to start a clean log file file, recreate the problem in as few steps as possible, then stop {{kodi}} and try again.  If it is still too large, try disabling features such as &amp;quot;scan library on startup&amp;quot;, which spam&#039;s a lot of info to the log (unless of course this is where the problem is).&lt;br /&gt;
&lt;br /&gt;
:{{note|{{big|&#039;&#039;&#039;Always include the whole debug log.&#039;&#039;&#039; Don&#039;t assume which portions of the log are relevant or not. }} }}&lt;br /&gt;
&lt;br /&gt;
:{{note|Make sure you have enabled &amp;quot;debug logging&amp;quot;. The normal log file, without debugging enabled, is almost always useless when it comes to troubleshooting!}}&lt;br /&gt;
&lt;br /&gt;
=== In the forums and IRC ===&lt;br /&gt;
Use a pastesite such as http://xbmclogs.com , http://pastebin.com , or http://pastebin.ca on when posting on the forums.  Simply visit one of these sites, paste or upload your log and hit submit.  After a few seconds you&#039;ll have a nice short URL to paste in your post.  Be sure to select an appropriate time to keep your paste around when submitting!&lt;br /&gt;
&lt;br /&gt;
=== On the bug tracker ===&lt;br /&gt;
Just upload the log to your ticket as an attachment.  &#039;&#039;&#039;DO NOT&#039;&#039;&#039; archive (zip,rar,tar,etc) it in anyway!  Trac will let us view it right on the site without downloading.&lt;br /&gt;
&lt;br /&gt;
= Log files =&lt;br /&gt;
* &#039;&#039;&#039;kodi.log&#039;&#039;&#039; or &#039;&#039;&#039;xbmc.log&#039;&#039;&#039; - This is the log file of most recent (or currently running) {{kodi}} session.&lt;br /&gt;
* &#039;&#039;&#039;kodi.old.log&#039;&#039;&#039; or &#039;&#039;&#039;xbmc.old.log&#039;&#039;&#039; - This is the log file from the last XBMC session.  If {{kodi}} crashes AND you have restarted it before viewing the log, this is the one you want.&lt;br /&gt;
&lt;br /&gt;
=== Location ===&lt;br /&gt;
&#039;&#039;kodi.log&#039;&#039; {{small|(or &#039;&#039;xbmc.log&#039;&#039;)}} and &#039;&#039;kodi.old.log&#039;&#039; {{small|(or &#039;&#039;xbmc.old.log&#039;&#039;)}} are located here, depending on your platform:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot; &lt;br /&gt;
! style=&amp;quot;background: lightgrey; width: 150px&amp;quot; | &#039;&#039;&#039;Operative system&#039;&#039;&#039; &lt;br /&gt;
! style=&amp;quot;background: lightgrey; width: 700px&amp;quot; | &#039;&#039;&#039;File/Folder Paths&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=2 | {{Helix note|Directories and files named &amp;lt;code&amp;gt;&#039;&#039;&#039;xbmc&#039;&#039;&#039;&amp;lt;/code&amp;gt; will be renamed to &amp;lt;code&amp;gt;&#039;&#039;&#039;kodi&#039;&#039;&#039;&amp;lt;/code&amp;gt; as part of the project rename starting in v14.}}&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Android&#039;&#039;&#039;  || {{note|The first folder might be different on various devices:}} &amp;lt;code&amp;gt;&#039;&#039;&amp;lt;data/sdcard/Android&amp;gt;&#039;&#039;/data/org.xbmc.xbmc/cache/temp/xbmc.log&amp;lt;/code&amp;gt;&lt;br /&gt;
or  &amp;lt;code&amp;gt;/sdcard/Android/data/org.xbmc.xbmc/files/.xbmc/temp/xbmc.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;iOS/ATV2&#039;&#039;&#039; || &amp;lt;code&amp;gt;/private/var/mobile/Library/Preferences/xbmc.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Linux&#039;&#039;&#039; || &amp;lt;code&amp;gt;$HOME/.kodi/temp/kodi.log&amp;lt;/code&amp;gt; &#039;&#039;or &amp;lt;code&amp;gt;$HOME/.xbmc/temp/xbmc.log&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Mac OS X&#039;&#039;&#039; || &amp;lt;code&amp;gt;/Users/&#039;&#039;&amp;lt;username&amp;gt;&#039;&#039;/Library/Logs/xbmc.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Windows&#039;&#039;&#039; || &amp;lt;code&amp;gt;%APPDATA%\XBMC\xbmc.log&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;[[Special protocol]]&#039;&#039;&#039; || &amp;lt;code&amp;gt;special://logpath (this can be used by scripts)&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See &#039;&#039;&#039;[[Log file/File manager access]]&#039;&#039;&#039; for how to copy the debug log file using the [[File manager]].&lt;br /&gt;
&lt;br /&gt;
= Easy ways to get and post the log file =&lt;br /&gt;
=== Debug log add-on ===&lt;br /&gt;
{{main|Log file/Easy}}&lt;br /&gt;
You can use the &#039;&#039;&#039;[[Add-on:XBMC Log Uploader|XBMC Log Uploader]]&#039;&#039;&#039; to make the process of getting your debug log easier.&lt;br /&gt;
&lt;br /&gt;
=== Automatic pastebin log in Linux via command line ===&lt;br /&gt;
You can generate a debug.log [http://en.wikipedia.org/wiki/Pastebin Pastebin] link automatically quickly to post anywhere that requires a debug.log.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;&#039;&#039;See also:&#039;&#039;&#039;&#039;&#039; [[SSH|Accessing XBMC via SSH]] e.g. Putty&lt;br /&gt;
&lt;br /&gt;
:{{note|Don&#039;t forget to [[#Enable debugging|enable debugging]]}}&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pastebinit -y&lt;br /&gt;
&lt;br /&gt;
cat $HOME/.kodi/temp/kodi.log | pastebinit&lt;br /&gt;
&#039;&#039;(or cat $HOME/.xbmc/temp/xbmc.log | pastebinit)&#039;&#039;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Submit the link you get in any forums discussion where you post about &#039;&#039;&#039;any&#039;&#039;&#039; problem.&lt;br /&gt;
&lt;br /&gt;
= Technical details about log files =&lt;br /&gt;
{{Editor note|This section might be outdated now that {{kodi}} has component-level logging. Some of it should still be true, but just keep in mind that this section hasn&#039;t been totally cleaned up for v13 and v14 yet.}}&lt;br /&gt;
{{collapse top}}&lt;br /&gt;
=== Layout ===&lt;br /&gt;
Each event is logged to one line of the {{kodi}} log file which is formatted as follows...&lt;br /&gt;
&amp;lt;pre&amp;gt;[TIMESTAMP] T:[THREADID] M:[FREEMEM] [LEVEL]: [MESSAGE]&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;TIMESTAMP&#039;&#039;&#039; - The wall time at which the event occurred.&lt;br /&gt;
* &#039;&#039;&#039;THREADID&#039;&#039;&#039; - The thread identification number of the thread in which the event occurred.&lt;br /&gt;
* &#039;&#039;&#039;FREEMEM&#039;&#039;&#039; - The amount of memory (in bytes) free at the time of the event.&lt;br /&gt;
* &#039;&#039;&#039;LEVEL&#039;&#039;&#039; - The severity of the event.&lt;br /&gt;
* &#039;&#039;&#039;MESSAGE&#039;&#039;&#039; - A brief description and/or important information about the event.&lt;br /&gt;
&lt;br /&gt;
=== Log levels ===&lt;br /&gt;
There are two different types levels when talking about the {{kodi}} log.  The first is the severity of event that has occurred.  The second controls which severity levels are actually printed out to the log.&lt;br /&gt;
&lt;br /&gt;
;Severity levels&lt;br /&gt;
In order from least to most severe...&lt;br /&gt;
* &#039;&#039;&#039;DEBUG&#039;&#039;&#039; - In depth information about the status of {{kodi}}.  This information can pretty much only be deciphered by a developer or long time {{kodi}} power user.&lt;br /&gt;
* &#039;&#039;&#039;INFO&#039;&#039;&#039; - Something has happened.  It&#039;s not a problem, we just thought you might want to know.  Fairly excessive output that most people won&#039;t care about.&lt;br /&gt;
* &#039;&#039;&#039;NOTICE&#039;&#039;&#039; - Similar to INFO but the average Joe might want to know about these events.  This level and above are logged by default.&lt;br /&gt;
* &#039;&#039;&#039;WARNING&#039;&#039;&#039; - Something potentially bad has happened.  If {{kodi}} did something you didn&#039;t expect, this is probably why.  Watch for errors to follow.&lt;br /&gt;
* &#039;&#039;&#039;ERROR&#039;&#039;&#039; - This event is bad.  Something has failed.  You likely noticed problems with the application be it skin artifacts, failure of playback a crash, etc.&lt;br /&gt;
* &#039;&#039;&#039;FATAL&#039;&#039;&#039; - We&#039;re screwed.  {{kodi}} is about to crash.&lt;br /&gt;
&lt;br /&gt;
;Log file control levels&lt;br /&gt;
In order from least to most information provided...&lt;br /&gt;
* &#039;&#039;&#039;None&#039;&#039;&#039; - No logging will occur.  &#039;&#039;xbmc.log&#039;&#039; will likely be created but should remain empty.&lt;br /&gt;
* &#039;&#039;&#039;Normal&#039;&#039;&#039; - The default loglevel.  Events with a severity of NOTICE or greater will be logged.&lt;br /&gt;
* &#039;&#039;&#039;Debug&#039;&#039;&#039; - All events are logged.  This level (or higher) is all that you should bother someone else with.&lt;br /&gt;
* &#039;&#039;&#039;Debug w/ Visuals&#039;&#039;&#039; - Same printed log as &#039;&#039;Debug&#039;&#039;, but free memory and CPU usage are rendered on the screen as well.&lt;br /&gt;
* &#039;&#039;&#039;SMB Debug&#039;&#039;&#039; - Same as &#039;&#039;Debug w/ Visuals&#039;&#039; with the addition of ridiculous amounts of Samba debugging info.  Use this only if asked.&lt;br /&gt;
{{collapse bottom}}&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
* [[HOW-TO:Submit a bug report]]&lt;br /&gt;
* [[Bug tracker]]&lt;br /&gt;
* [[Troubleshooting]]&lt;br /&gt;
&lt;br /&gt;
{{Gotham updated}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Trac]]&lt;br /&gt;
[[Category:Manual]]&lt;br /&gt;
[[Category:Troubleshooting]]&lt;br /&gt;
[[Category:Advanced topics]]&lt;/div&gt;</summary>
		<author><name>Bs27975</name></author>
	</entry>
	<entry>
		<id>https://kodi.wiki/index.php?title=Talk:Log_file/Easy&amp;diff=82778</id>
		<title>Talk:Log file/Easy</title>
		<link rel="alternate" type="text/html" href="https://kodi.wiki/index.php?title=Talk:Log_file/Easy&amp;diff=82778"/>
		<updated>2014-12-31T16:36:55Z</updated>

		<summary type="html">&lt;p&gt;Bs27975: Created page with &amp;quot;Any chance http://xbmclogs.com/show.php has been kodi&amp;#039;fied and the article needs to be so updated? ~~~~&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Any chance http://xbmclogs.com/show.php has been kodi&#039;fied and the article needs to be so updated?&lt;br /&gt;
[[User:Bs27975|Bs27975]] ([[User talk:Bs27975|talk]]) 11:36, 31 December 2014 (EST)&lt;/div&gt;</summary>
		<author><name>Bs27975</name></author>
	</entry>
</feed>