When working on Flow for After Effects, we were looking for a way to log standard JS console errors to a file, so that if something broke we'd be able to quickly diagnose the problem and fix it in a patch. Straightforward enough!

However, as the CEP standard is evolving, we found that there was some discrepancy in behaviors between different versions of AE with respect to how to enable logging and where the log files are saved. With any luck, this can help.

The CEP documentation mentions that there are many Chromium Command Line Switches you can make use of in extensions; good place to start. I went through all of the logging options here to find out how these worked and what benefits they provided.

Flow currently uses CSXS 5.0, so this info may be not apply to other versions.

Simply, I found that just adding <Parameter>--v=0</Parameter> to your manifest was the best route, for a variety of reasons. Below you'll see the what I've found by poking around the switches, and the behavior it provides between AE versions.

Log File Locations

Windows
/Users/USERNAME/Library/Logs/CSXS/
MacOS
%localappdata%\temp\

The Switches

(No flags set)

  • After Effects CC2014:
    • On extension close, log is saved to cef_debug.log
    • This log is persistent between AE/extension sessions; it will grow indefinitely, which is both a positive and negative

--enable-logging

  • AE CC2014:
    • On extension launch, a terminal/command window launches and displays the errors there. This is frustrating for users and not a viable option.
  • AE CC2015+:
    • Doesn't do anything!

--v=X

  • Where X is from 0-2 (it seems higher than 2 is the same as 2)
    • v=0: info & errors
    • v=1: all above + resource_loader.cc events
    • v=2: all above + scheduler.cc events
  • AE CC2014:
    • Saved to cef_debug.log
    • Persists between AE/extension sessions
    • Pro: File can be sent at any point and all old errors will be present
    • Con: The file will grow forever, as it doesn't seem to overwrite itself
  • AE CC2015+:
    • Saved to CEPHtmlEngineX-HostID_HostVersion_ExtensionName.log
    • Clears between extension sessions
    • Pro: No worry about the file bloating forever
    • Con: If user is experiencing a (caught) error/bug, you'll need to instruct them to not re-open the panel after experiencing it, and send you the file (else it will wipe on next launch)