telos-log
v1.0.2
Published
A General Purpose Logging Utility and Library
Readme
Telos Log
1 - Abstract
Take Notes
Telos Log is a general purpose logging utility and library.
2 - Contents
2.1 - Conventions
2.1.1 - Orca and OQL
Telos Log persists all logged data to an Orca log as specified by an OQL selector, using log Orca objects, which have the "log" tag, and may also be identified as error logs with the "error" tag.
2.2 - Usage
Telos Log is available on npm as the package "telos-log".
2.2.1 - CLI
The output of a separate program may be captured by Telos Log via its CLI by running the telos-log package through npx, with the first argument being the OQL selector of the Orca log, and each subsequent argument composing the command to execute the target program.
Using "null" as the OQL selector will set the selector as:
(at (access "./telosLog.json") "log")Therefore, if you had the file test.js with the following code:
console.log("Hello, world!");And you ran the following command with a Mongo OQL selector:
npx telos-log '(at (access "MONGO_CONN_STR") "DB_NAME" "COLL_NAME")' node testThen in addition to printing "Hello, world!" to the console as normal, the following object will be persisted to the specified Mongo collection:
{
"content": "Hello, world!\n",
"properties": {
"metadata": {
"author": null,
"time": TIMESTAMP_MILLIS
},
"tags": [
"orca",
"log"
]
}
}2.2.2 - JavaScript
2.2.2.1 - Library
Telos Log may be made to operate in the manner that its CLI mode does from within a JS program by importing the telos-log module and calling the enable function with the OQL selector specified in a config options object, defaulting to (at (access "./telosLog.json") "log") if no selector is specified.
Here is a demonstration:
require("telos-log").enable({
context: "(at (access \"MONGO_CONN_STR\") \"DB_NAME\" \"COLL_NAME\")"
});Telos Log may be subsequently disabled in the following manner:
require("telos-log").disable();2.2.2.2 - Telos Origin
Telos Log may be installed to run automatically as in a Telos Origin instance as follows:
npx telos-origin -e install telos-logWhen running in such a manner, it will derive the OQL selector from the TELOS_LOG environment variable.
