Jaguar-dart / jaguar

Jaguar, a server framework built for speed, simplicity and extensible. ORM, Session, Authentication & Authorization, OAuth
http://jaguar-dart.github.io
463 stars 34 forks source link

`logRequests` or `server.log.onRecord.listen(print)` not printing to STDOUT #139

Closed seenickcode closed 3 years ago

seenickcode commented 4 years ago

The following two examples do not print anything to STDOUT on WSL1 or Windows 10, ver 2.4.44.

library main;

import 'dart:async';
import 'package:jaguar/jaguar.dart';

main() async {
  final server = Jaguar();

  server.get('/hello', (Context ctx) => 'Hello world!');

  await server.serve(logRequests: true);
}

and

library main;

import 'package:jaguar/jaguar.dart';
import 'package:jaguar_reflect/jaguar_reflect.dart';

@GenController(path: '/api')
class Routes extends Controller {
  @Get()
  Response<String> get(Context ctx) => Response.json('Hello buddy!');

  @Post()
  Future<Response<String>> post(Context ctx) async =>
      Response.json(await ctx.bodyAsJson());
}

main() async {
  final server = Jaguar(port: 8000);
  server.add(reflect(Routes()));
  server.log.onRecord.listen(print);
  await server.serve(log);
}
tejainece commented 3 years ago

This code logs for me:

library main;

import 'dart:async';
import 'package:jaguar/jaguar.dart';

main() async {
  final server = Jaguar();

  server.get('/hello', (Context ctx) => 'Hello world!');

  server.log.onRecord.listen(print);

  await server.serve(logRequests: true);
}

This line is responsible for actually logging to stdout: server.log.onRecord.listen(print);