28

What's an easy way to see the trace() output of Flash/Flex movies when running in any browser?

approxiblue
  • 6,624
  • 16
  • 47
  • 56
Robin Rodricks
  • 99,791
  • 133
  • 372
  • 575

9 Answers9

24

Download and install the content debugger version of Flash Player.

Enable trace logging (official guide) by adding an mm.cfg file:

ErrorReportingEnable=1

    TraceOutputFileEnable=1

Where to save mm.cfg depends on the OS:

  • Mac OS X: /Library/Application Support/Macromedia
  • Windows: %HOMEDRIVE%\%HOMEPATH%
  • Linux: /home/user name

The log file, flashlog.txt, can be found at:

  • Windows 95/98/ME/2000/XP: C:\Documents and Settings\username\Application Data\Macromedia\Flash Player\Logs
  • Windows Vista: C:\Users\username\AppData\Roaming\Macromedia\Flash Player\Logs
  • Mac OS X: /Users/username/Library/Preferences/Macromedia/Flash Player/Logs/
  • Linux: /home/username/.macromedia/Flash_Player/Logs/

Optionally, you can install the Firefox add-on FBTracer which displays the trace output in a Firebug panel.

approxiblue
  • 6,624
  • 16
  • 47
  • 56
Robin Rodricks
  • 99,791
  • 133
  • 372
  • 575
  • 2
    This answer needs updating - the "official steps" link is dead, and FlashTracer hasn't been updated since July 2008. – Daniel Schaffer Apr 07 '11 at 17:53
  • 2
    It doesn't look like FlashTracer plugin has been updated for the latest version of Firefox. However I did find a handy standalone GUI at http://code.google.com/p/flash-tracer/ – Marc Novakowski May 20 '11 at 17:13
  • You can just open the flashlog.txt; there's no need for a separate plugin to read it. – OrangeDog Aug 28 '12 at 13:48
  • 2
    Another possible alternative to FlashTracer is FlashFirebug. https://addons.mozilla.org/en-US/firefox/addon/flashfirebug/ Though I couldn't get it to work (might be a licensing issue), so ended up using Vizzy mentioned above. Also ran across this post on how to get Vizzy working in Chrome: http://www.burnedouthippy.com/2011/02/google-chrome-flash-debugger-and-tracing-in-the-browser/ – Dan Jan 05 '13 at 02:57
  • Or simply use `import flash.external.*; /*....*/ ExternalInterface.call('console.log', 'this was very tricky');` along with trace? – Ejaz Nov 13 '13 at 01:19
  • 1
    It's good that you updated the "official steps" link, but you should also describe those steps here, in case the link goes offline again. StackOverflow guidelines also encourage this: http://stackoverflow.com/help/how-to-answer . You don't have to quote the entire page, just the relevant info (how to enable trace logging) – OMA Apr 21 '15 at 10:57
16

i just use the console.log function (most recent browsers implement it);

import flash.external.ExternalInterface;

public static function log(msg:String, caller:Object = null):void{
        var str:String = "";
        if(caller){
            str = getQualifiedClassName(caller);
            str += ":: ";
        }
        str += msg;
        trace(str);
        if(ExternalInterface.available){
            ExternalInterface.call("console.log", str);
        }
    }
Mårten
  • 349
  • 1
  • 10
NoelDrew
  • 161
  • 1
  • 2
13

Check out De Monster's MonsterDebugger. You can debug track objects, traces, and display chains in a lovely AIR application. Very fun to use. And it's open source!

http://demonsterdebugger.com/

You can also configure Flash and Flex to write to a log file. Check out how to do that here:

http://livedocs.adobe.com/flex/3/html/help.html?content=logging_04.html

I've been using Monster lately, but I used to have an alias that ran a unix "tail" on the flashlog file that would effectively give me a logging window for "in browser" tracing:

alias flashlog='tail -f /PATH/TO/flashlog.txt'

Or if you have a log viewer (like Console on Mac OS), you can view the log there. The only reason I suggest these options is that FlashTracer is pretty "crashy" ;)

typeoneerror
  • 51,338
  • 32
  • 124
  • 213
4

Vizzy makes life easier if you want a basic logfile viewer. You just install the debug player and then install Vizzy. It is a window that tails the flashlog file. The sweet thing is that is does all the mm.cfg file b.s. for you.

http://code.google.com/p/flash-tracer/

Tim B.
  • 151
  • 3
  • Easy to use tool. Once a debug flash player is installed, no configuration is needed. All done by Vizzy. Browser independent. Cool tool. – Dimuthu Aug 22 '11 at 10:30
3

Probably not as fancy as the others or cutting edge, but I used to create my own log function in the flash movie (funnily enough, called log) that called trace and also called a js function on the page (using whatever method your comfortable with). The function on the page was just a simple console.log() with Firebug. Simple and worked a treat.

rXc3NtR1c
  • 136
  • 1
  • 5
2

I am a happy Thunderbolt user, maybe it is also worth a look (multiple log levels, plays nicely with firebug out of the box).

moritzstefaner
  • 210
  • 1
  • 8
0

Since macromedia was aquired by adobe,I thought it should be 'D :\Documents and Settings\user_name\Application Data\Adobe\Flash Player\Logs\flashlog.txt '.Which resutlted in loss of few minutes for me.Finally i decide to give it a try to look at D:\Documents and Settings\user_name\Application Data\Macromedia\Flash Player\Logs\flashlog.txt and bingo i could see the flash trace() outputs.

I wonder why adobe is sill keeping the log file location in macromedia folder.Whatever it is I can see the trace ouptuts of flash applications run inside a browser and i am a happy man :)

0

Unix's tail command works well for me:

tail -f ~/Library/Preferences/Macromedia/Flash\ Player/Logs/flashlog.txt

The -f switch keeps the log open and tails it via stdout into an open Terminal window. This is a Mac solution, I'm not sure what the Windows tail equivalent is.

Note that path is based on this document, posted above by @Jarvis.

ericsoco
  • 20,453
  • 20
  • 89
  • 117
0

In windows, If you use a localized version (i.e. spanish) of the operating system, 'Application Data' must be replaced with the localized version (i.e. "Datos de programa")

Ismaelj
  • 11
  • 1