error method

Future<void> error(
  1. String message, [
  2. StackTrace? stack
])

Implementation

Future<void> error(String message, [StackTrace? stack]) async {
	errorsCount++;
	if (errorsCount >= 1000) {
		if (errorsCount == 1000) {
			message = 'Too many errors, error processing is suspended';
			stack = null;
		}
		else return;
	}
	final String time = DateTime.now().toUtc().toString().replaceFirst(RegExp(r'\..*'), '');
	_server._events.dispatch(ErrorEvent(message, stack));
	stdout.write(_clear);
	print('$_red${time.replaceFirst(RegExp('.* '), '')}: $message$_reset');
	_server.console.update();
	if (_errorFile != null) {
		Future<void> func(void _) => _errorFile!.writeString('$time - $message\n${stack.toString()}\n');
		_errorPromise = _errorPromise.then(func);
		await _errorPromise;
	}
	if (_server.config.debug && _debugFile != null) {
		Future<void> func(void _) => _debugFile!.writeString('$time - $message\n');
		_debugPromise = _debugPromise.then(func);
		await _debugPromise;
	}
}