Files
2026-05-19 11:30:21 +08:00

245 lines
14 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[
% 游戏配置
{game_server, [
{server_type, game_server}, %% 服务器类型
{platform_zone, 0}, %% 平台专区 0-通用专区 1-小程序 2-app
{tcp_port, 18001}, %% tcp端口
{http_port, 19001}, %% http端口,需要对T后台/蜂鸟平台等公司第三方平台开放
{server_id, 1}, %% 服务器id
{server_name, "内部测试"}, %% 区服名称
{main_platform, "android_cn"}, %% 游戏专区简称
{merge_server_ids, []}, %% 被合服到本服的服务器id,格式[[1,3],5] 表示1、2、3、5服被合到本服
{login_node, 'login_server_s900@172.16.14.176'}, %% 登录服节点名
{center_node, 'center_server_s800@172.16.14.176'}, %% 中心服节点名
{open_time, {{2025, 2, 10}, {5, 0, 0}}}, %% 开服时间
{gm_auth, false}, %% 开启GM
{is_develop, false}, %% 开发模式
{is_inner, false}, %% 是否内网服务器
{is_mainland, true}, %% 内容审核区分服务器true表示大陆服
%% 日志文件配置
{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,
%% 日志进程消息低于该值,使用异步通讯,反之则用同步通讯 =<dorp_mode_qlen,=表示不会启用同步通讯
sync_mode_qlen => 200,
%% 日志进程消息高于该值,丢弃新投递的消息,=<flush_qlen
drop_mode_qlen => 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,
%% 日志进程消息低于该值,使用异步通讯,反之则用同步通讯 =<dorp_mode_qlen,=表示不会启用同步通讯
sync_mode_qlen => 200,
%% 日志进程消息高于该值,丢弃新投递的消息,=<flush_qlen
drop_mode_qlen => 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中传入
}}
}},
%% http信息日志(info及以上级别)
{handler, http_log, ms_logger_std, #{
level => info,
config => #{
%% 输出文件路径
file => "log/http_info.log",
burst_limit_enable => true,
burst_limit_max_count => 500,
burst_limit_window_time => 1000,
sync_mode_qlen => 200,
drop_mode_qlen => 200,
flush_qlen => 1000,
max_no_bytes => 209715200,
max_no_files => 10
},
%% 默认不打印日志,是否打印通过filters判断
filter_default => stop,
%% 只打印domain = [ms_http]的日志
filters => [
{http_domain, {fun logger_filters:domain/2, {log, equal, [ms_http]}}} %% 输出 do_main=[ms_http] 的日志
],
formatter => {logger_formatter, #{
max_size => 10000,
single_line => false,
legacy_header => false,
template => ["====| ", time, " | ", level, " | ", {id, [id], ["undefined"]}, " | ", mfa, ":", line, " | ", pid, " |====\n", msg, "\n"] %% 输出格式,其中log_time,tag,id是调用方法时metadata中传入
}}
}}
%% %% 错误输出到im
%% {handler, im, ms_logger_im, #{
%% level => error,
%% config => #{
%% url => "https://messenger-api.4399om.com/open/v1/message/bot/hook/fe06c413-5914-4124-b3b5-79261c5fdef1"
%% },
%% filter_default => stop,
%% filters => [{no_domain, {fun logger_filters:domain/2, {log, undefined, []}}}],
%% formatter => {logger_formatter, #{
%% legacy_header => false,
%% max_size => 10000,
%% single_line => false,
%% template => [time, " [", level, "]", {id, [id], ["none"]}, "(", mfa, ":", line, ")(", pid, ") : ", msg, "\n"]
%% }}
%% }}
%% ]}
]}
]},
%% ms_cache缓存配置
{ms_cache, [
{data_node, undefined}, % 缓存节点,undefined为缓存app启动在本节点
{cache_db_type, ets}, % 缓存在内存的储存位置 proc | ets | mnesia(mnesia暂不支持)
{data_fmt, record}, % 缓存数据存取的格式, record | map 默认为record
{table_worker_count, 8}, % 每个内存表对应处理的进程数(哈希分组到各个进程)
{db_save_time, 120000}, % (定时同步参数)缓存定期同步到数据库的时间间隔,单位毫秒;默认值 600000
{db_save_count, 1000}, % (定量同步参数)缓存待同步数量上限,达到数量触发同步数据库操作;默认值 1000
{db_driver, 'mysql-otp'}, % 使用的数据库驱动(当前只支持mysql-otp第三方驱动,可扩展支持mongo和emysql
{db_user, "dhmmcadmin"}, % 数据库用户
{db_pass, "dhmmc@4399$$"}, % 数据库密码
{db_host, "172.16.14.176"}, % 数据库地址
{db_port, 3306}, % 数据库端口
{db_name, "dhmmc_s1_game"}, % 数据库名
{db_encoding, utf8}, % 数据库编码(mysql-otp驱动下没用到)
{db_select_pool_name, select_pool_name}, % 数据库查询链接名
{db_select_pool_size, 32}, % 数据库查询链接池容量
{db_select_pool_overflow, 128},
{db_update_pool_name, update_pool_name}, % 数据库更新链接名(增删改都使用该链接)
{db_update_pool_size, 10}, % 数据库更新链接池容量
{db_sync_options, #{
create_table => true, % 是否自动创建表,正式服为true
drop_table => false, % 是否自动删除表,正式服为false
alter_table => true, % 是否自动修改表,正式服为true
patch_run_mod => auto, % 补丁运行模式,auto-自动运行,正式服为{env,"ERLANG_RUN_PATCH"}
patch_prefix => "patch_", % 补丁文件的前缀名
limit => 7 % 最多检查近x条补丁,如有遗漏追加执行,外网建议设置为1
}}
]},
%% ms_tbllog后台日志配置
{ms_tbllog, [
{data_node, undefined}, % 缓存节点,undefined为缓存app启动在本节点
{data_fmt, record}, % 缓存数据存取的格式, record | map 默认为record
{db_save_start_time, 60000}, % 从起服到开始同步数据库的时间最小值,单位毫秒;默认值 600000
{db_save_time, 120000}, % (定时同步参数)缓存定期同步到数据库的时间间隔,单位毫秒;默认值 600000
{db_save_count, 1000}, % (定量同步参数)缓存待同步数量上限,达到数量触发同步数据库操作;默认值 1000
{db_driver, 'mysql-otp'}, % 使用的数据库驱动(当前只支持mysql-otp第三方驱动,可扩展支持mongo和emysql
{db_user, "dhmmcadmin"}, % 数据库用户
{db_pass, "dhmmc@4399$$"}, % 数据库密码
{db_host, "172.16.14.176"}, % 数据库地址
{db_port, 3306}, % 数据库端口
{db_name, "dhmmc_s1_log"}, % 数据库名
{db_encoding, utf8}, % 数据库编码(mysql-otp驱动下没用到)
{db_update_pool_name, tbllog_pool_name}, % 数据库更新链接名(增删改都使用该链接)
{db_update_pool_size, 10} % 数据库更新链接池容量
]},
%% 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] 的日志
, {http_domain, {fun logger_filters:domain/2, {log, equal, [ms_http]}}} %% 输出 do_main=[ms_http] 的日志
]},
%% 控制台日志输出
%% 使用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}
]}
].