BetaBetaLogs a debug message
Use for detailed diagnostic information useful during development and troubleshooting. Debug logs are typically disabled in production and should include technical details like internal state, intermediate values, or execution flow.
The log message
Optionaldata: LogDataOptional additional data to include with the log entry
import {
createLogger,
PlatformServiceName,
} from '@limetech/lime-web-components';
const logger = createLogger('my-component');
const http = platform.get(PlatformServiceName.Http);
const cache = new Map<string, unknown>();
const cacheKey = 'user:123';
let user = cache.get(cacheKey);
if (user === undefined) {
logger.debug('Cache miss, fetching from API', { key: cacheKey });
user = await http.get('user/123');
cache.set(cacheKey, user);
}
logger.debug('Rendering component', {
limetype: context.limetype,
id: context.id,
});
BetaLogs an error message
Use for failures and exceptions that prevent normal operation or indicate something has gone wrong. Error logs should always describe what failed and include relevant context to aid in diagnosis.
The log message
Optionalerror: ErrorOptional error object
Optionaldata: LogDataOptional additional data to include with the log entry
import {
createLogger,
PlatformServiceName,
} from '@limetech/lime-web-components';
const logger = createLogger('my-component');
const http = platform.get(PlatformServiceName.Http);
const userId = 123;
try {
await http.get(`user/${userId}`);
} catch (error) {
logger.error('Failed to fetch user data', asError(error), { userId });
}
const invalidConfig = { retries: -1 };
if (invalidConfig.retries < 0) {
logger.error('Invalid configuration detected', undefined, {
config: invalidConfig,
});
}
function asError(value: unknown): Error | undefined {
return value instanceof Error ? value : undefined;
}
BetaLogs an informational message
Use for significant application events that represent normal behavior. Info logs should capture key milestones, successful operations, or state transitions that are useful for understanding application flow in production.
The log message
Optionaldata: LogDataOptional additional data to include with the log entry
import {
createLogger,
PlatformServiceName,
} from '@limetech/lime-web-components';
const logger = createLogger('my-component');
const application = platform.get(PlatformServiceName.Application);
const user = application.getCurrentUser();
if (user) {
logger.info('User authenticated', { userId: user.id });
}
logger.info('File uploaded successfully', {
filename: 'report.pdf',
size: 2048,
});
BetaLogs a warning message
Use for unexpected situations that don't prevent the application from functioning but may indicate potential issues, deprecated usage, or suboptimal conditions. Warnings should be actionable and suggest something that may need attention.
The log message
Optionaldata: LogDataOptional additional data to include with the log entry
import {
createLogger,
PlatformServiceName,
} from '@limetech/lime-web-components';
const logger = createLogger('my-component');
const http = platform.get(PlatformServiceName.Http);
const threshold = 3000;
const startedAt = Date.now();
await http.get('deal');
const duration = Date.now() - startedAt;
if (duration > threshold) {
logger.warn('API response time exceeded threshold', {
duration,
threshold,
});
}
logger.warn('Using deprecated configuration option', {
option: 'legacy_mode',
});
Logger service for writing log messages to configured handlers
Loggers are created from a LoggerFactory with a specific scope/category. All log messages written to a logger will be sent to all handlers configured in the factory.
Example: Write messages at every level