rebar3 服务器
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
%%-----------------------------------------------------------------------------
|
||||
%%
|
||||
%% the cron tab running in erlang
|
||||
%%
|
||||
%% please see also crontab(5) : man 5 crontab
|
||||
%%
|
||||
%% field allowed values
|
||||
%% ----- --------------
|
||||
%% minute(m) 0-59
|
||||
%% hour(h) 0-23
|
||||
%% day of month(dom) 1-31
|
||||
%% month(mon) 1-12
|
||||
%% day of week(dow) 0-7 (0 or 7 is Sun)
|
||||
%% server open day 0-infinity 服务器开服天数(缺省值为任意天数)
|
||||
%%
|
||||
%% Format:
|
||||
%%
|
||||
%% {{m, h, dom, mon, dow}, {M, F, A}}.
|
||||
%% M:F(A) is excuted in a new erlang process
|
||||
%%
|
||||
%% {{m, h, dom, mon, dow, dos}, {M, F, A}}.
|
||||
%% M:F(A) is excuted in a new erlang process
|
||||
%%
|
||||
%% Some exampls:
|
||||
%%
|
||||
%% {{"0", "2", "*", "*", "*"}, {io, format, ["hello~n"]}}.
|
||||
%% print "hello" in hour 2 ervery day
|
||||
%%
|
||||
%% {{"0-59/2", "*", "*", "*", "*"}, {erlang, garbage, [whereis(user)]}}.
|
||||
%% do the garbage collect on user process, every 2 minitues(0, 2, ..., 58)
|
||||
%%
|
||||
%% {{1-59/15, "0-12/2,12-23/1", "*", "*", "*"}, {io, format, ["crontab!~n"]}}.
|
||||
%% print "crontab!", every 2 hours between 0 and 12, every 1 hour between 12 and 23
|
||||
%%
|
||||
%%-----------------------------------------------------------------------------
|
||||
%% demo, say hello ervery minitues
|
||||
%%{{"*", "*", "*", "*", "*"}, {io, format, ["^_^ hello by crontab\n"]}}.
|
||||
|
||||
%%----------------------------------------------------------------------
|
||||
%% 每分钟触发时间
|
||||
%% 示例
|
||||
%% {{"0-59/1", "*", "*", "*", "*"}, {Module, Fun, Args}}.
|
||||
%%----------------------------------------------------------------------
|
||||
{{"0-59/1", "*", "*", "*", "*"}, {role_gs, cast_online, [{on_minute_refresh}]}}.
|
||||
{{"0-59/1", "*", "*", "*", "*"}, {ms_process, cast, [activity_schedule_gs, {on_minute_refresh}]}}.
|
||||
{{"0-59/1", "*", "*", "*", "*"}, {ms_process, cast, [behavior_tree_gs, on_minute_refresh]}}.
|
||||
|
||||
%%----------------------------------------------------------------------
|
||||
%% 每一小时触发事件
|
||||
%% 示例
|
||||
%% {{"0", "0-23/1", "*", "*", "*"}, {Module, Fun, Args}}.
|
||||
%%----------------------------------------------------------------------
|
||||
{{"0", "0-23/1", "*", "*", "*"}, {role_gs, cast_online, [{on_hour_refresh}]}}.
|
||||
|
||||
%%----------------------------------------------------------------------
|
||||
%% 每天0点触发事件
|
||||
%% 示例
|
||||
%% {{"0", "0", "*", "*", "*"}, {Module, Fun, Args}}.
|
||||
%%----------------------------------------------------------------------
|
||||
{{"0", "0", "*", "*", "*"}, {role_gs, cast_online, [{on_day_refresh}]}}.
|
||||
{{"0", "0", "*", "*", "*"}, {ms_process, cast, [activity_daily_hosting_gs, {on_day_refresh}]}}.
|
||||
{{"0", "0", "*", "*", "*"}, {rank_gs, cast_all, [on_day_refresh]}}.
|
||||
{{"0", "0", "*", "*", "*"}, {role_mgr_gs, on_new_day, []}}.
|
||||
|
||||
%%----------------------------------------------------------------------
|
||||
%% 每周一0点触发事件
|
||||
%% 示例
|
||||
%% {{"0", "5", "*", "*", "1"}, {Module, Fun, Args}}.
|
||||
%%----------------------------------------------------------------------
|
||||
{{"0", "0", "*", "*", 1}, {role_gs, cast_online, [{on_week_refresh}]}}.
|
||||
{{"0", "0", "*", "*", 1}, {rank_gs, cast_all, [on_week_refresh]}}.
|
||||
|
||||
%%----------------------------------------------------------------------
|
||||
%% %每月1日0时触发事件
|
||||
%% 示例
|
||||
%% {{"0", "0", "1", "*", "*"}, {Module, Fun, Args}}.
|
||||
%%--------------------------------------------------------------------
|
||||
{{"0", "0", "1", "*", "*"}, {role_gs, cast_online, [{on_month_refresh}]}}.
|
||||
{{"0", "0", "1", "*", "*"}, {rank_gs, cast_all, [on_month_refresh]}}.
|
||||
@@ -0,0 +1,4 @@
|
||||
%% 这个配置文件会被拷贝到各个发布版本的releases目录中
|
||||
%% 热更时会更新系统配置,根据这个文件的内容进行更新,这里的["sys.config"]就是指定使用游戏根目录下的sys.config
|
||||
%% 其作用主要是不需要每个版本都拷贝一份sys.config,毕竟线上每个服的sys.config都不一样,不能预先放进打包的releases目录中
|
||||
["sys.config"].
|
||||
@@ -0,0 +1,146 @@
|
||||
[
|
||||
% 游戏配置
|
||||
{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,
|
||||
%% 日志进程消息低于该值,使用异步通讯,反之则用同步通讯 =<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中传入
|
||||
}}
|
||||
}}
|
||||
]}
|
||||
]
|
||||
},
|
||||
%% 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}
|
||||
]
|
||||
}
|
||||
].
|
||||
@@ -0,0 +1,244 @@
|
||||
[
|
||||
% 游戏配置
|
||||
{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}
|
||||
]}
|
||||
].
|
||||
@@ -0,0 +1,196 @@
|
||||
[
|
||||
% 登录服配置
|
||||
{login_server,
|
||||
[
|
||||
{server_env, "internal"}, %% "internal" | "external"
|
||||
{login_node_port, 18000}, %% "internal" | "external"
|
||||
%% 日志文件配置
|
||||
{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中传入
|
||||
}}
|
||||
}}
|
||||
]}
|
||||
]
|
||||
},
|
||||
%% ms_cache缓存配置
|
||||
{ms_cache,
|
||||
[
|
||||
{data_node, undefined}, %% 缓存节点,undefined为缓存app启动在本节点
|
||||
{cache_db_type, proc}, %% 缓存在内存的储存位置 proc | ets | mnesia(mnesia暂不支持)
|
||||
{data_fmt, record}, %% 缓存数据存取的格式, record | map, 默认为record
|
||||
{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_s900_trunk_login"}, %% 数据库名
|
||||
{db_encoding, utf8}, %% 数据库编码(mysql-otp驱动下没用到)
|
||||
{db_select_pool_name, select_pool_name}, %% 数据库查询链接名
|
||||
{db_select_pool_size, 10}, %% 数据库查询链接池容量
|
||||
{db_update_pool_name, update_pool_name}, %% 数据库更新链接名(增删改都使用该链接)
|
||||
{db_update_pool_size, 10}, %% 数据库更新链接池容量
|
||||
{db_sync_options,
|
||||
#{limit => 7, create_table => true, drop_table => false,
|
||||
alter_table => true, patch_run_mod => auto,
|
||||
patch_prefix => "patch_"}}
|
||||
]
|
||||
},
|
||||
%% kernel配置
|
||||
{kernel,
|
||||
[
|
||||
%% erlang节点间通讯端口号区域
|
||||
{inet_dist_listen_min, 16000},
|
||||
{inet_dist_listen_max, 17000},
|
||||
%% 控制台日志输出
|
||||
%% 最基本的日志等级,除非有设置module level,否则低于这个日志级别的日志都不会被输出,包括上面game_server的日志
|
||||
{logger_level, debug}, %% todo 这里会有各疑问,linux下会存在erlang.log.x日志,输出等级以这个为主,目前还不了解这个日志从哪里设置,设置高级别减少日志输出
|
||||
{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}
|
||||
]
|
||||
}
|
||||
].
|
||||
@@ -0,0 +1,7 @@
|
||||
# 参数配置
|
||||
# +开头的是控制模拟器行为
|
||||
# -开头的是运行时参数
|
||||
# -extra之后的全是普通参数
|
||||
|
||||
# 启动模式改为互动式
|
||||
-mode interactive
|
||||
@@ -0,0 +1,63 @@
|
||||
# 参数配置
|
||||
# +开头的是控制模拟器行为
|
||||
# -开头的是运行时参数
|
||||
# -extra之后的全是普通参数
|
||||
|
||||
# 是否支持smp,可以选enable|auto|disable
|
||||
-smp enable
|
||||
|
||||
# 设置长名字(在sys.config配置)
|
||||
-name client_server@172.16.12.220
|
||||
|
||||
# erlang的安装位置
|
||||
# -boot_var ERTS_LIB_DIR ${OTP_LIB_DIR}
|
||||
|
||||
# 设置cookie,确保节点可以互联
|
||||
-setcookie node-cookie
|
||||
|
||||
# 隐藏节点
|
||||
-hidden
|
||||
|
||||
# 指定配置
|
||||
-config "sys.config"
|
||||
|
||||
# Mnesia集群配置
|
||||
#-mnesia dir '"../mdb/copies/name.global"'
|
||||
|
||||
# 启动模式改为互动式
|
||||
# -mode interactive
|
||||
|
||||
# 启动kernel的poll
|
||||
+K true
|
||||
|
||||
# 系统异步进程的堆栈大小,默认16k,一般建议不要改
|
||||
#+a 16
|
||||
|
||||
# 系统最大可用的原子数量,默认是 1048576
|
||||
+t 1048576
|
||||
|
||||
# 异步线程池数量,默认10
|
||||
+A 10
|
||||
|
||||
# 调度器数量,一般是自动设置为cpu核心总数,可以比总核心数少,大于总核心数无效果
|
||||
# +S 16
|
||||
|
||||
# ets表的最大数量(过期的选项)以前默认是1400
|
||||
+e 32768
|
||||
|
||||
# 最大线程数,(建议是2的幂)范围:1024~134217727,默认262144
|
||||
+P 524288
|
||||
|
||||
# 最大端口数(默认是65536,建议是2的幂)
|
||||
+Q 65536
|
||||
|
||||
# 如果文件是utf8编码,+fnu,如果是 ISO-latin-1编码,用+fnl
|
||||
+fnu
|
||||
|
||||
# 指定erlang进程堆内存大小
|
||||
+hms 8192
|
||||
+hmbs 8192
|
||||
+zdbbl 81920
|
||||
|
||||
# 可打印字符为改为Unicode范围
|
||||
+pc unicode
|
||||
@@ -0,0 +1,60 @@
|
||||
# 参数配置
|
||||
# +开头的是控制模拟器行为
|
||||
# -开头的是运行时参数
|
||||
# -extra之后的全是普通参数
|
||||
|
||||
# 是否支持smp,可以选enable|auto|disable
|
||||
-smp enable
|
||||
|
||||
# 设置长名字(在sys.config配置)
|
||||
-name game_server_s901@172.16.14.176
|
||||
|
||||
# erlang的安装位置
|
||||
# -boot_var ERTS_LIB_DIR ${OTP_LIB_DIR}
|
||||
|
||||
# 设置cookie,确保节点可以互联
|
||||
-setcookie node-cookie
|
||||
|
||||
# 隐藏节点
|
||||
-hidden
|
||||
|
||||
# 指定配置 默认为"sys.config"
|
||||
-config "sys.config"
|
||||
|
||||
# Mnesia集群配置
|
||||
#-mnesia dir '"./"'
|
||||
|
||||
# 启动模式改为互动式
|
||||
-mode interactive
|
||||
|
||||
# 启动kernel的poll
|
||||
+K true
|
||||
|
||||
# 系统异步进程的堆栈大小,默认16k,一般建议不要改
|
||||
#+a 16
|
||||
|
||||
# 系统最大可用的原子数量,默认是 1048576
|
||||
+t 1048576
|
||||
|
||||
# 异步线程池数量,默认10
|
||||
+A 10
|
||||
|
||||
# 调度器数量,一般是自动设置为cpu核心总数,可以比总核心数少,大于总核心数无效果
|
||||
# +S 16
|
||||
|
||||
# ets表的最大数量(过期的选项)以前默认是1400
|
||||
+e 32768
|
||||
|
||||
# 最大线程数,(建议是2的幂)范围:1024~134217727,默认262144
|
||||
+P 524288
|
||||
|
||||
# 最大端口数(默认是65536,建议是2的幂)
|
||||
+Q 65536
|
||||
|
||||
# 如果文件是utf8编码,+fnu,如果是 ISO-latin-1编码,用+fnl
|
||||
+fnu
|
||||
|
||||
# 指定erlang进程堆内存大小
|
||||
+hms 8192
|
||||
+hmbs 8192
|
||||
+zdbbl 81920
|
||||
@@ -0,0 +1,61 @@
|
||||
# 参数配置
|
||||
# +开头的是控制模拟器行为
|
||||
# -开头的是运行时参数
|
||||
# -extra之后的全是普通参数
|
||||
|
||||
# 是否支持smp,可以选enable|auto|disable
|
||||
-smp enable
|
||||
|
||||
# 设置长名字(在sys.config配置)
|
||||
-name login_server_s900@172.16.14.176
|
||||
|
||||
# erlang的安装位置
|
||||
# -boot_var ERTS_LIB_DIR ${OTP_LIB_DIR}
|
||||
|
||||
# 设置cookie,确保节点可以互联
|
||||
-setcookie node-cookie
|
||||
|
||||
# 隐藏节点
|
||||
-hidden
|
||||
|
||||
# 指定配置
|
||||
-config "sys.config"
|
||||
|
||||
# Mnesia集群配置
|
||||
#-mnesia dir '"../mdb/copies/name.global"'
|
||||
|
||||
# 启动模式改为互动式
|
||||
# -mode interactive
|
||||
|
||||
# 启动kernel的poll
|
||||
+K true
|
||||
|
||||
# 系统异步进程的堆栈大小,默认16k,一般建议不要改
|
||||
#+a 16
|
||||
|
||||
# 系统最大可用的原子数量,默认是 1048576
|
||||
+t 1048576
|
||||
|
||||
# 异步线程池数量,默认10
|
||||
+A 10
|
||||
|
||||
# 调度器数量,一般是自动设置为cpu核心总数,可以比总核心数少,大于总核心数无效果
|
||||
# +S 16
|
||||
|
||||
# ets表的最大数量(过期的选项)以前默认是1400
|
||||
+e 32768
|
||||
|
||||
# 最大线程数,(建议是2的幂)范围:1024~134217727,默认262144
|
||||
+P 524288
|
||||
|
||||
# 最大端口数(默认是65536,建议是2的幂)
|
||||
+Q 65536
|
||||
|
||||
# 如果文件是utf8编码,+fnu,如果是 ISO-latin-1编码,用+fnl
|
||||
+fnu
|
||||
|
||||
# 指定erlang进程堆内存大小
|
||||
+hms 8192
|
||||
+hmbs 8192
|
||||
+zdbbl 81920
|
||||
|
||||
Reference in New Issue
Block a user