Debugging Tools
Server Side
Console Logs
Logs are crucial for diagnosing and understanding issues in your project. MassiveRealm provides logging functionality that can be accessed through the MassiveRealm Console.
Viewing Logs
Logs are available under Project / Storage / Logs
in the MassiveRealm Console. Logs are rotated every 500 lines and are cleared when the application starts.
Log API
You can use the Log API to add custom log messages to help with debugging.
- $log.info(...args): Logs informational messages.
- $log.debug(...args): Logs debug messages.
- $log.error(...args): Logs error messages.
Example:
$log.info('This is an info message');
$log.debug('This is a debug message');
$log.error('This is an error message');
Real-Time Statistics
Track traffic, requests stats, CCU (concurrent users) in the MassiveRealm Console under Project / Stats
.
Client Side
Debug Mode
When initializing the Client, set the debug
property to true
to enable detailed logging of client-side events and actions.
Logs will be displayed in the browser console.
Example:
let MRClient = new MassiveRealmClient.Client({
debug: true,
url: 'https://your-project-url/',
publicKey: 'your-public-key',
// Other configurations
});
Error Handling
Implement error handling in your client and server scripts to catch and log errors for debugging.
Client-Side Example:
window.MR = new window.MassiveRealmClient.Client({
onError: function(error) {
console.error('Client Error:', error);
},
// Other configurations
});
Server-Side Example:
try {
// Some server-side code
} catch (error) {
$log.error('Server Error:', error);
}
Best Practices
Test in Development Mode
Make use of the development environment to test and debug your project before deploying it to production.
Development mode has limits but allows you to test ideas without incurring costs.
Use Meaningful Logs
Ensure that your log messages are meaningful and provide enough context to understand the issue without additional information.
Example:
$log.debug('User login attempt', { username: 'testUser' });
Monitor Performance Metrics
Keep an eye on your project's performance metrics, such as CCU (concurrent users), traffic, and number of requests, to identify potential bottlenecks or issues.
Validate Inputs
MassiveRealm communication is based on binary
with raw values only. That means if you defined string
in the schema, you should send string
values only.
model-field-types.png
Make Batches by using Timers
When you need to update multiple objects, consider batching them to reduce the number of requests and improve performance.
By following these guidelines and using the available debugging tools, you can effectively identify and resolve issues in your MassiveRealm project, ensuring a smooth and robust development process.