import { ConfigParams, IConfigurable, IOpenable, Context } from "pip-services4-components-node";
import { FluentdLogger } from 'pip-services4-fluentd-node';
class MyComponent implements IConfigurable, IOpenable {
private _logger = new FluentdLogger();
public constructor(){
this._logger.configure(ConfigParams.fromTuples(
"connection.protocol", "http",
"connection.host", "localhost",
"connection.port", 24224
));
this._logger.setLevel(5);
this._logger.open(null);
this._logger.info(null, "MyComponent has been created.666666");
this._logger.debug(null, "Everything is OK.");
}
public configure(config: ConfigParams): void {
this._logger.info(null, "MyComponent is configured.")
}
public open(ctx: Context): Promise<void> {
this._logger.info(ctx, "MyComponent is open.");
return null;
}
public close(ctx: Context): Promise<void> {
this._logger.info(ctx, "MyComponent is closed.");
// this._logger.close(null);
return null;
}
public isOpen(): boolean {
return true;
}
public myMethod(ctx: Context): void {
// create an artificial problem
try {
throw Error('Logging demo. Error created');
}
catch (ex) {
this._logger.error(ctx, ex, "Error created.")
}
}
}
export async function main() {
let component = new MyComponent();
component.configure(ConfigParams.fromTuples(
"parameter", "123"
));
component.open(null);
component.myMethod(null);
component.close(null);
console.log('Fluentd terminated');
}