{"id":4,"date":"2006-12-17T20:37:55","date_gmt":"2006-12-17T19:37:55","guid":{"rendered":"http:\/\/www.crydust.be\/blog\/2006\/12\/17\/sos-flash-log-tail\/"},"modified":"2010-02-11T18:03:24","modified_gmt":"2010-02-11T16:03:24","slug":"sos-flash-log-tail","status":"publish","type":"post","link":"https:\/\/www.crydust.be\/blog\/2006\/12\/17\/sos-flash-log-tail\/","title":{"rendered":"SOS Flash Log Tail"},"content":{"rendered":"<p>At work I use <a href=\"http:\/\/sos.powerflasher.de\/english\/english.html\"><acronym title=\"SocketOutputServer\">SOS<\/acronym><\/a> in conjunction with the <a href=\"http:\/\/www.as2lib.org\/documentation\/articles\/as2lib_logging_api\">As2lib Logging API<\/a> to log messages from flash. This works very well, except for the odd legacy program that uses the trace command for logging. This is where the flash debug player comes in handy.<\/p>\n<p><!--more--><\/p>\n<p>To use this feature I <a href=\"http:\/\/www.adobe.com\/support\/flashplayer\/downloads.html#uninstaller\">uninstalled the flash player<\/a> and installed the <a href=\"http:\/\/www.adobe.com\/support\/flashplayer\/downloads.html#fp9\">flash debug player<\/a>.<\/p>\n<p>Then I wrote a batch file to create the required mm.cfg file for me.<\/p>\n<pre class=\"code-dos\">@echo off\r\nset mmcfgfile=&quot;%HOMEDRIVE%%HOMEPATH%\\mm.cfg&quot;\r\nset logfile=&quot;%APPDATA%\\Macromedia\\Flash Player\\Logs\\flashlog.txt&quot;\r\necho ErrorReportingEnable=1        &gt;  %mmcfgfile%\r\necho TraceOutputFileEnable=1       &gt;&gt; %mmcfgfile%\r\necho MaxWarnings=0                 &gt;&gt; %mmcfgfile%\r\necho TraceOutputFileName=%logfile% &gt;&gt; %mmcfgfile%\r\necho Done.<\/pre>\n<p>After which I manually set the flashLog path in SOS to <kbd>C:\\Documents and Settings\\<em>username<\/em>\\Application Data\\Macromedia\\Flash Player\\Logs\\flashLog.txt<\/kbd>. It doesn&#8217;t support the <var>%APPDATA%<\/var> environment variable.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" id=\"image6\" src=\"http:\/\/www.crydust.be\/blog\/wp-content\/uploads\/sos-flash-log-tail-1.png\" alt=\"Screenshot SOS Flash Log Tail Config menuitem\" width=\"341\" height=\"158\"  \/><br \/>\n<img loading=\"lazy\" decoding=\"async\" id=\"image7\" src=\"http:\/\/www.crydust.be\/blog\/wp-content\/uploads\/sos-flash-log-tail-2.png\" alt=\"Screenshot SOS Flash Log Tail Config window\" width=\"400\" height=\"250\" \/><\/p>\n<p>Also see <a href=\"http:\/\/www.digitalflipbook.com\/archives\/2005\/07\/trace_from_the.php\">Trace from the browser, using standard trace()<\/a> by Mark Walters.<\/p>\n<p>Also see <a href=\"http:\/\/jpauclair.net\/2010\/02\/10\/mmcfg-treasure\/\">AS3 hidden treasure in the mm.cfg file. Revealing and documenting many Flash secrets!<\/a> by Jean-Philippe Auclair.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>At work I use <a href=\"http:\/\/sos.powerflasher.de\/english\/english.html\"><acronym title=\"SocketOutputServer\">SOS<\/acronym><\/a> in conjunction with the <a href=\"http:\/\/www.as2lib.org\/documentation\/articles\/as2lib_logging_api\">As2lib Logging API<\/a> to log messages from flash. This works very well, except for the odd legacy program that uses the trace command for logging. This is where the flash debug player comes in handy.<\/p>\n<p> <a href=\"https:\/\/www.crydust.be\/blog\/2006\/12\/17\/sos-flash-log-tail\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-4","post","type-post","status-publish","format-standard","hentry","category-flash"],"_links":{"self":[{"href":"https:\/\/www.crydust.be\/blog\/wp-json\/wp\/v2\/posts\/4","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.crydust.be\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.crydust.be\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.crydust.be\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.crydust.be\/blog\/wp-json\/wp\/v2\/comments?post=4"}],"version-history":[{"count":3,"href":"https:\/\/www.crydust.be\/blog\/wp-json\/wp\/v2\/posts\/4\/revisions"}],"predecessor-version":[{"id":145,"href":"https:\/\/www.crydust.be\/blog\/wp-json\/wp\/v2\/posts\/4\/revisions\/145"}],"wp:attachment":[{"href":"https:\/\/www.crydust.be\/blog\/wp-json\/wp\/v2\/media?parent=4"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.crydust.be\/blog\/wp-json\/wp\/v2\/categories?post=4"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.crydust.be\/blog\/wp-json\/wp\/v2\/tags?post=4"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}