@grafana/runtime
Version:
Grafana Runtime Library
89 lines (86 loc) • 2.99 kB
JavaScript
import { faro, LogLevel } from '@grafana/faro-web-sdk';
export { LogLevel } from '@grafana/faro-web-sdk';
import { config } from '../config.mjs';
function logInfo(message, contexts) {
if (config.grafanaJavascriptAgent.enabled) {
faro.api.pushLog([message], {
level: LogLevel.INFO,
context: contexts
});
}
}
function logWarning(message, contexts) {
if (config.grafanaJavascriptAgent.enabled) {
faro.api.pushLog([message], {
level: LogLevel.WARN,
context: contexts
});
}
}
function logDebug(message, contexts) {
if (config.grafanaJavascriptAgent.enabled) {
faro.api.pushLog([message], {
level: LogLevel.DEBUG,
context: contexts
});
}
}
function logError(err, contexts) {
if (config.grafanaJavascriptAgent.enabled) {
faro.api.pushError(err, {
context: contexts
});
}
}
function logMeasurement(type, values, context) {
if (config.grafanaJavascriptAgent.enabled) {
faro.api.pushMeasurement(
{
type,
values
},
{ context }
);
}
}
function createMonitoringLogger(source, defaultContext) {
const createFullContext = (contexts) => ({
source,
...defaultContext,
...contexts
});
return {
/**
* Logs a debug message with optional additional context.
* @param {string} message - The debug message to be logged.
* @param {LogContext} [contexts] - Optional additional context to be included.
*/
logDebug: (message, contexts) => logDebug(message, createFullContext(contexts)),
/**
* Logs an informational message with optional additional context.
* @param {string} message - The informational message to be logged.
* @param {LogContext} [contexts] - Optional additional context to be included.
*/
logInfo: (message, contexts) => logInfo(message, createFullContext(contexts)),
/**
* Logs a warning message with optional additional context.
* @param {string} message - The warning message to be logged.
* @param {LogContext} [contexts] - Optional additional context to be included.
*/
logWarning: (message, contexts) => logWarning(message, createFullContext(contexts)),
/**
* Logs an error with optional additional context.
* @param {Error} error - The error object to be logged.
* @param {LogContext} [contexts] - Optional additional context to be included.
*/
logError: (error, contexts) => logError(error, createFullContext(contexts)),
/**
* Logs an measurement with optional additional context.
* @param {MeasurementEvent} measurement - The measurement object to be recorded.
* @param {LogContext} [contexts] - Optional additional context to be included.
*/
logMeasurement: (type, measurement, contexts) => logMeasurement(type, measurement, createFullContext(contexts))
};
}
export { createMonitoringLogger, logDebug, logError, logInfo, logMeasurement, logWarning };
//# sourceMappingURL=logging.mjs.map