I think it should work in the separate thread and should get format string and variables as arguments and should write it into a passed file.
Also, we hope that api will be compatible with the existing logger.
Qualities I personally would like to see in logger:
support for long lines/objects (10-s to 100-s of kilobytes)
support for outputting all logs in JSON
support for arbitrary log line formatting (ideally user-defined) both for regular and audit logs
separate log levels for system messages, audit log and application messages (ideally set per-module)
ability to write system and application logs to the same FD (including stdout)
lack of output tearing/mixup, even when writing to stdout
don't yield when calling log.*()
support for special formatting escape sequence to convert lua tables to JSON. like log.info("Quick and dirty debug: %j", lua_table_i_want_to_print_in_logs)
I think it should work in the separate thread and should get format string and variables as arguments and should write it into a passed file. Also, we hope that api will be compatible with the existing logger.