“Somewhere, somehow Flash Player trace logging stopped appearing in the flashlog.txt file.”
I’m sure many of you have had that thought run through your mind. I know I’ve been fighting it for a long time now. I do component development for SAP BusinessObjects Xcelsius and for their newly released SAP BusinessObjects Dashboards 4.0 sp4. When I work on my Xcelsius connectors I flip back over to Flash Player 9 as somewhere during the Flash Player 10.x trace logging just stopped. Also I’m on Windows 7, and since Windows Vista the only way to install the connectors in is to run Xcelsius as an administrator. So somewhere along the way the latest Flash Players have stopped logging to the flashlog.txt file, which for those who do component development for Xcelsius and Dashboards 4.0 know that will really slow down your debug time. But how can I get this working again? The answer wasn’t nearly as straightforward as I hoped.
Anytime the flashlog.txt isn’t re-created on the disk, this means logging isn’t properly configured. Either you don’t have it enabled in the mm.cfg file or Flash Player is unable to find the mm.cfg file all together. Here’s a page in Adobe’s help that gives us an idea of where to find it, or so I thought. Take a look and see if you can find why this information is misleading, if not wrong for the latest Flash Players (links will open in a new tab).
Welcome back. Hope you enjoyed the nice page like I did. Looked great didn’t it? No seriously. One way you can tell if you landed on “old” information is by looking at the style of the page you’re on. Is it “up do date”? This one certainly looked like it. The “feedback” request on the right hand side faded nicely in, and has a 3D look to it. Page color choice and font size all scream Web 2.0 styling. Information is right there too in a nice table. No need to scroll around looking for the information. Take it and run.
But wait, don’t do that. That’s what I did. And I was wrong. I came back to this page and scrolled down some more. Go ahead and flip back to the page and scroll down to the section called “Log file location”. Notice the references to Flash Player 9 in there? This is the part where your eyes get really big. Why is this “new” web page telling me about changes in log file location during the life cycle of Flash Player 9? Now, scroll a little bit down to the keywords section. Notice the keyword “18.104.22.168”? Yep, and the latest Flash Player 9 that was released (mind you Flash Player 9 is no longer officially supported by Adobe) was 9.0.280. And there are no other keywords for the latest Flash Players 10.x thru 11.x. So here we are, wrong information.
Now what brought me back to that page? Well, it was this one.
This one in their reference section for Adobe’s last official release of Flex, Flex 4.6. Since then Apache Flex has taken over the code as an open source project. Now this one definitely looks older than the earlier page we looked at, but right off the bat it gives us the answer we need to make sure we have the mm.cfg in the right spot. It immediately tells us that since 10.1 the location of the mm.cfg has changed to %HOMEDRIVE%%HOMEPATH%, which are two environment variables. Now, this wont affect many people adversely as those environment variables are defaulted to C:\Users\username in Vista and C:\Document and Settings\username in XP and down. Except, of course, for those of us in a corporate environment. Those environment variables may lead us to a shared network location, which is common, and in my case, the reality. So whenever I fire up Flash Player 10.1.x, it will now check my mapped drive Z:\Cmartin, where “Z:” is the value for %HOMEDRIVE% and “\Cmartin” is for %HOMEPATH%. You can easily double check your configuration by opening a command prompt and typing:
So we have the right file location for mm.cfg. We’ve also double checked that we have logging enabled, but we still don’t get anything in the flashlog.txt file? See, if you’re still reading, then you are in the same spot I was. I promise to wrap this up quickly. Don’t run as administrator.
Remember earlier I mentioned that I do component development for Xcelsius and Dashboards 4.0, and how I have to run those as administrator so I can install updated components that I’ve created? Well, that’s my culprit as well. As soon as I ran Xcelsius without administrator privileges, the flashlog.txt was re-created and those helpful trace lines started flowing again.
So for those who follow the meme’s of the internet, tldr. Here’s the run down for Vista and up.
- Flash Player 9.0.280 and Flash Player 10.0.x will look in C:\Users\username for the mm.cfg file, and will log when running as administrator
- Flash Player 10.1.x and up will look in %HOMEDRIVE%%HOMEPATH% for the mm.cfg file, and will not log when running as administrator
That’s it. I hope this information was helpful and would save you from running afoul of misleading documentation. If you find other solutions to this problem, feel free to drop it in the comments. Hopefully this would prove to be a useful resource for those of us doing Xcelsius component development.