Skip to main content
Glama
aiLoggerAdvancedExample.js4.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const AILogger_1 = require("../logging/AILogger"); /** * Example service that uses AILogger */ class UserService { constructor() { // Create a logger for this service this.logger = new AILogger_1.AILogger('user-service', { defaultLevel: AILogger_1.LogLevel.INFO, includeTimestamps: true }); } /** * Get a user by ID */ async getUserById(userId) { try { this.logger.info('Getting user by ID', { userId }); // Simulate API call await new Promise(resolve => setTimeout(resolve, 500)); // Simulate user data const user = { id: userId, username: 'john.doe', email: 'john.doe@example.com', createdAt: '2025-01-01T00:00:00Z' }; this.logger.debug('User retrieved successfully', { userId, user }); return user; } catch (error) { this.logger.error('Error getting user by ID', { userId, error: error instanceof Error ? error.message : String(error), stack: error instanceof Error ? error.stack : undefined }); throw error; } } /** * Create a new user */ async createUser(userData) { try { this.logger.info('Creating new user', { userData }); // Validate user data if (!userData.username) { const error = new Error('Username is required'); this.logger.warn('Validation failed', { error: error.message, userData }); throw error; } // Simulate API call await new Promise(resolve => setTimeout(resolve, 500)); // Simulate created user const user = { id: Math.random().toString(36).substring(2, 15), ...userData, createdAt: new Date().toISOString() }; this.logger.info('User created successfully', { userId: user.id }); return user; } catch (error) { this.logger.error('Error creating user', { userData, error: error instanceof Error ? error.message : String(error), stack: error instanceof Error ? error.stack : undefined }); throw error; } } /** * Get all logs for this service */ async getLogs(limit = 10) { return this.logger.getEntries(limit); } /** * Clear all logs for this service */ async clearLogs() { return this.logger.clear(); } } /** * Example of how to use the AILogger in a service */ async function runAdvancedExample() { // Create a user service const userService = new UserService(); console.log('Creating a user...'); try { // Try to create a user with invalid data await userService.createUser({}); } catch (error) { console.log('Expected error:', error instanceof Error ? error.message : String(error)); } // Create a user with valid data const user = await userService.createUser({ username: 'jane.doe', email: 'jane.doe@example.com' }); console.log('User created:', user); // Get a user by ID const retrievedUser = await userService.getUserById(user.id); console.log('User retrieved:', retrievedUser); // Get logs console.log('Getting logs...'); const logs = await userService.getLogs(); console.log(`Retrieved ${logs.length} logs:`); console.log(JSON.stringify(logs, null, 2)); // Clear logs console.log('Clearing logs...'); const cleared = await userService.clearLogs(); console.log(`Logs cleared: ${cleared}`); } // Run the advanced example runAdvancedExample().catch(error => { console.error('Error running advanced example:', error); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TSavo/Unity-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server