Site logo

Log

Error log function

function ErrorLog(text) {
	var file = new File("~/Desktop/" + scriptName + " - error log.txt");
	file.encoding = "UTF-8";
	
	if (file.exists) {
		file.open("e");
		file.seek(0, 2);
	}
	else {
		file.open("w");
		if (errorsArr.length == 0) file.write("=========================================================\rDate & time: " + GetDate() + "\r=========================================================\r");
	}

	file.write(text + "\r"); 
	file.close();
	errorsArr.push(text);
}

Log message function

function LogMessage(msg) {
	if (log) {
		var file = new File("~/Desktop/" + scriptName + " log.txt");
		file.encoding = "UTF-8";
		
		if (file.exists) {
			file.open("e");
			file.seek(0, 2);
		}
		else {
			file.open("w");
		}
	
		file.write(msg + "\r"); 
		file.close();
	}
}

This function allows logging errors into another file and overwriting the file if it already exists.
Note: logCount = 0; is global variable that is reset every time the script is run. in Bridge, it should be inside a function –– e.g. Main –– because of the persistent engine.

var scriptName = "Script name",
log = true,
logOverwrite = true,
logCount = 0,
logErrCount = 0,
errArr = [];

Log("Applied Alt-Text: " + thumbnail.name + " | " + altText, false);

try {
	// something goes wrong here
}
catch(err) { 
	Log(err.message + ", line: " + err.line + " in ApplyMetadata", true);
}

function Log(text, err) {
	if (log) {
		if (typeof err == "undefined") err = false;
		if (typeof logOverwrite == "undefined") logOverwrite = false;

		var file = new File("~/Desktop/" + scriptName + " - " + ((err) ? "Error " : "") + "Log.txt");
		
		if (logOverwrite && ((err) ? logErrCount == 0 : logCount == 0)) {
			if (file.exists) file.remove();
		}
	
		if ((!err && logCount == 0) || (err && logErrCount == 0)) { // add header before the first error during a session
			text = ((file.exists) ? "\r" : "") + "========== " + new Date().toLocaleString() + " ==========\r" + text;
		}

		file.encoding = "UTF-8";

		if (file.exists) {
			file.open("e");
			file.seek(0, 2);
		}
		else {
			file.open("w");
		}

		file.write(text + "\r"); 
		file.close();
		
		if (err) {
			errArr.push(text);
			logErrCount++;
		}
		else {
			logCount++;
		}
	}
}

See also Logging with a smile

extendscript-logger by theasci

extendscript-logger by npm