New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

extendscript_log

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

extendscript_log

A log constructor for Adobe ExtendScript with optional log file, and broadcasts to CEP panels with "ExtendScript_Log" events. UMD wrapper for cross-compatability with AMD and node.js require.

latest
Source
npmnpm
Version
1.4.0
Version published
Maintainers
1
Created
Source

Summary

An ExtendScript compatible log constructor object with shims for basic Console calls, log file, and custom "ExtendScript_Log" events sent to CEP panels.

Trying to split the difference between too-basic and OMG-features-and-dependencies.

Features

  • Works with node.js require, AMD(probably), and vanilla ExtendScript.
  • Adds 'log' and 'console' aliases to optional parameter (like $.global)
  • Tries to JSON.stringify your message for you
  • Optional ExtendScript_LogFile support
  • Event delivery to CEP (panels) (with secret support for passing data packets)
  • Make multiple logs with different names and levels and files
  • Graceful fallbacks or omissions if optional dependencies missing

Non-Blocking Dependencies

  • JSON.stringify() via whatever library you care to include
  • Event to CEP panels with new ExternalObject("lib:\PlugPlugExternalObject")
  • ExtendScript_LogFile

Import

NPM

If running Node NPM, you can npm install ExtendScript_Log to add to your node_modules folder

github

Clone or download the repo and copy the ExtendScript_Log.jsxinc to your project

Include

NPM

var extlog = require("ExtendScript_Log");

AMD

I don't know but it's probably not difficult? Firmly in the untested-but-should-work category

ExtendScript

Eval into environment

$.evalFile("<path>/ExtendScript_Log.jsxinc")

Include in scripts

//@include "<path>/ExtendScript_Log.jsxinc"

concatinate or copy-paste directly

Add to a build script or, I dunno, just copy-pasta it in there?

Use:

Default log levels are:

  • 0 - trace
  • 1 - debug
  • 2 - info (also default if not specified)
  • 3 - warn
  • 10 - error

Make new log object

make a new log and you get a separate instance

var myLog = new ExtendScript_Log();
myLog.log('Hey there.');
var specialLog = new ExtendScript_Log(null,"special");
specialLog.log('Salutations.');
myLog.warn('Special log thinks they're all that...');
specialLog.info('Default log is jealous cause I have a label.');

// prints:
// Hey there.
// SPECIAL:Salutations.
// [WARN] Special log thinks they're all that...
// SPECIAL:[INFO] Default log is jealous of my label.

Constructor options

"new" constructor takes 6 optional arguments. First arg is an alternate root object to tack on a 'log' and 'console' alias By passing $.global as first arg, we get global log and console objects!

root = $.global;// root to add convenience alisases to
logName = "specialLog";// name other than "defualt"
logLevel = 2;// log level filter
useLogFile = true;// make a log file? Deafults to false. (see Bonus Features)
keepOldLogs = false;// keep or delete all but latest log file?
logFileDir = undefined;// a string filepath to save logs to.

myLog = new ExtendScript_Log(root, logName, logLevel, useLogFile, keepOldLogs, logFileDir);

Use the log

Log.log (message, useAlert);// standard use

// send custom level/label; doesn't work with Log.info() etc.
Log.log (message, level, label, useAlert);
myLog = new ExtendScript_Log($.global);
console.log('Messages are good.');
console.info('So informative...');
log.warn('Duck!');
log.error('Not a good thing');

mySecretLog = new ExtendScript_Log(null, "secret");
mySecretLog.warn('Tell no one...');

// prints:
// Messages are good.
// [INFO] So informative...
// [WARN] Duck!
// [ERROR] Not a good thing
// SECRET:[WARN] Tell no one...

Second argument sends up an blocking alert dialog in app if true

log.error('Not a good thing', true);

Bonus Features

Log file:

Tries to make a log file in ./logs or to ~/Desktop/ExtendScript_Log_UnsavedScripts/ or you can specify a custom log folder path as the 6th argument. Needs ExtendScript_LogFile, but will make a new log file automatically if that has been included.

Note: Different logs get different log files, even if they all print to the same console.

CEP event:

Tries to send type, level, label, and message as a packet in a custom event "ExtendScript_Log" No JSON support needed in the script to send, but you have to un-strigify on receipt: data string looks like: {type: "default", level:2, label:"info", message:"Important things!"} Note: the "clear()" function sends a packet with "clear" label and log level 99.

Add custom labels and levels:

// add a custom log level
Log.addLogLevel("gui",3);
Log.gui('Making dialog');

Keywords

extendscript

FAQs

Package last updated on 27 May 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts