[ % 游戏配置 {client_server, [ {host, "127.0.0.1"}, %% 压测服务器host {tcp_port, 18001}, %% 压测服务器tcp端口 {server_id, 1}, %% 压测服务器id {login_server_host, "172.16.14.176"}, %% 登录服host {login_server_http_port, 18000}, %% 登录服http端口 {test_mods, [test_item]}, %% 日志文件配置 {logger, [ %% info日志 %% 使用ms_logger_std模板 {handler, info, ms_logger_std, #{ level => info, config => #{ %% 输出文件路径 file => "log/info.log", %% 时间检测,表示1000毫秒内最多处理500个日志事件,超出则丢弃新的日志事件 burst_limit_enable => true, burst_limit_max_count => 500, burst_limit_window_time => 1000, %% 日志进程消息低于该值,使用异步通讯,反之则用同步通讯 = 200, %% 日志进程消息高于该值,丢弃新投递的消息,= 200, %% 日志进程消息高于该值,丢弃信箱内的所有消息(语义上与drop_mode_qlen冲突,应该是系统不是实时监测消息队里,应该是定期监测??) flush_qlen => 1000, %% 单个文件最大字节数(200M) max_no_bytes => 209715200, %% 最多保留文件数(10个) max_no_files => 10 }, %% 默认打印日志 %% 默认不打印日志,是否打印通过filters判断 filter_default => stop, %% metadata的map结构中没有domain的日志会被输出到文件 filters => [ {domain, {fun logger_filters:domain/2, {log, equal, [ms_base]}}} %% 输出 do_main=[ms_base] 的日志 ], %% 输出格式 %% 输出格式使用logger_formatter模板 formatter => {logger_formatter, #{ %% 单行日志最多2000个字节 max_size => 2000, %% 每个日志不分行,忽略msg里的~n,也是系统默认值 single_line => false, %% 不增加默认标题,也是系统默认值 legacy_header => false, template => ["====| ", time, " | ", level, " | ", {id, [id], ["undefined"]}, " | ", mfa, ":", line, " | ", pid, " |====\n", msg, "\n"] %% 输出格式,其中log_time,tag,id是调用方法时metadata中传入 }} }}, %% error日志 %% 使用ms_logger_std模板 {handler, error, ms_logger_std, #{ level => error, config => #{ %% 输出文件路径 file => "log/error.log", %% 时间检测,表示1000毫秒内最多处理500个日志事件,超出则丢弃新的日志事件 burst_limit_enable => true, burst_limit_max_count => 500, burst_limit_window_time => 1000, %% 日志进程消息低于该值,使用异步通讯,反之则用同步通讯 = 200, %% 日志进程消息高于该值,丢弃新投递的消息,= 200, %% 日志进程消息高于该值,丢弃信箱内的所有消息(语义上与drop_mode_qlen冲突,应该是系统不是实时监测消息队里,应该是定期监测??) flush_qlen => 1000, %% 单个文件最大字节数(200M) max_no_bytes => 209715200, %% 最多保留文件数(10个) max_no_files => 10 }, %% 默认不打印日志,是否打印通过filters判断 filter_default => stop, %% metadata的map结构中没有domain的日志会被输出到文件 filters => [ {domain, {fun logger_filters:domain/2, {log, equal, [ms_base]}}} %% 输出 do_main=[ms_base] 的日志 ], %% 输出格式 %% 输出格式使用logger_formatter模板 formatter => {logger_formatter, #{ %% 单行日志最多10000个字节,出错的尽量完整输出 max_size => 10000, %% 每个日志不分行,忽略~n,也是系统默认值 single_line => false, %% 不增加默认标题,也是系统默认值 legacy_header => false, template => ["====| ", time, " | ", level, " | ", {id, [id], ["undefined"]}, " | ", mfa, ":", line, " | ", pid, " |====\n", msg, "\n"] %% 输出格式,其中log_time,tag,id是调用方法时metadata中传入 }} }} ]} ] }, %% kernel配置 {kernel, [ %% erlang节点间通讯端口号区域 {inet_dist_listen_min, 16000}, {inet_dist_listen_max, 17000}, %% 控制台日志输出 %% 低于这个日志级别的日志都不会被输出,包括上面game_server的日志;(外网该值要改成info) {logger_level, debug}, {logger, [ %% 总控过滤,默认不输出 {filters, stop, [ {domain, {fun logger_filters:domain/2, {log, equal, [ms_base]}}} %% 输出 do_main=[ms_base] 的日志 ]}, %% 控制台日志输出 %% 使用logger_std_h模板 {handler, default, logger_std_h, #{ %% 日志等级,linux该值该未none,linux不需要控制台日志输出;linux下live启动的时候也没日志。。。额 level => debug, %% 其他没有列出的参数使用默认值 %% logger_level=info 及以上的日志会被输出 filter_default => stop, %% 过滤条件 filters => [{need_level, {fun logger_filters:level/2, {log, gteq, info}}}], %% 输出格式 formatter => {logger_formatter, #{ %% 单行日志最多10000个字节 max_size => 10000, %% 每个日志不分行,忽略~n,也是系统默认值 single_line => false, %% 不增加默认标题 legacy_header => false, template => ["====| ", time, " | ", level, " | ", {id, [id], ["undefined"]}, " | ", mfa, ":", line, " | ", pid, " |====\n", msg, "\n"] %% 输出格式,其中log_time,tag,id是调用方法时metadata中传入 }} }} ]} ] }, %% sasl配置 {sasl, [ %% 关闭SASL日志 {sasl_error_logger, false} ] } ].