signalizejs/logger
 Wrapper around console (log, info, warning, error) for sending JS log info to the server. 
 Installation
Required import map dependencies:
	
import loggerModule from 'signalizejs/logger';
const signalize = new Signalize({
	modules: [
		[
			'logger',
			loggerModule,
			{
				// URL where the logs will be sent
				url: 'https://example.com/api/log-client-error',
				// Optional
				// What type of info should be sent
				// Default is "error" only
				levels: ['log', 'warning', 'error']
			}
		]
	]
})
Usage
The logger plugin starts automatically and doesn’t have any API:
- After the module setup, the logger will automatically start sending requests to the configured endpoint.
- The default level that is sent is erroronly.
- You can change it by passing levelsduring initialization.
Handling errors on the server side
The logger sends a JSON with the following keys:
- message: Error message text.
- file: File path.
- lineNumber: Line number where the error occured.
- columnNumber: Column numberwhere the error occured.
- stack: Call stack
Simplified example with the Symfony framework in PHP
#[Route('/log-client-error')]
public function clientError(Request $request)
{
	$logsDir = $this->kernel->getLogDir();
	$counterFile = $logsDir . '/js-errors-counter.txt';
	$logsFile = $logsDir . '/js-errors.log';
	$counter = 0;
	if (is_file($counterFile)) {
		$counter = (int) file_get_contents($counterFile);
	}
	// Set max amount of logs to 50
	if ($counter === 50) {
		return new Response('');
	}
	$counter ++;
	file_put_contents($counterFile, $counter);
	// Get the request content and the log data
	// After that, you can work with the keys (like "message", "file") within the log mentioned above
	$log = json_decode($request->getContent(), false)->log;
	// Get the current date and time
	$currentTime = date('Y-m-d H:i:s');
	// Create a DateTime object from the current time
	$dateTime = new DateTime($currentTime);
	// Format the date and time using desired format specifiers
	$formattedTime = $dateTime->format('h:i j. n. Y');
	file_put_contents($logsFile, '[' . $formattedTime . '] (' . $log->url . '): ' . preg_replace('/\n/', ' ', $log->message) . PHP_EOL, FILE_APPEND);
	return new Response('');
}