仓库初始化
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"workspace": {
|
||||
"server_root": "E:/work/AI002/trunk/server/server",
|
||||
"run_dir": "E:/work/AI002/trunk/server/server/run"
|
||||
},
|
||||
"database": {
|
||||
"host": "172.16.12.220",
|
||||
"user": "ddxqadmin",
|
||||
"password": "ddxq@44168deabe63",
|
||||
"port": 3306
|
||||
},
|
||||
"server": {
|
||||
"prefix": "ddxq2",
|
||||
"login_server_node": "ddxq2_login_server_s900@172.16.14.127",
|
||||
"default_server_id": "1",
|
||||
"cookie": "ddxq2-node",
|
||||
"center_server_node": "ddxq2_center_server_s1@172.16.14.127"
|
||||
},
|
||||
"erlang": {
|
||||
"r25_path": "D:\\Program Files\\Erlang OTP\\bin",
|
||||
"erl": "erl",
|
||||
"werl": "werl",
|
||||
"escript": "escript"
|
||||
},
|
||||
"commands": {
|
||||
"rebar": "escript rebar3",
|
||||
"svn": "svn"
|
||||
},
|
||||
"login_db": {
|
||||
"db_name": "ddxq_login_mix_wxtest_s900",
|
||||
"server_id": 900,
|
||||
"host": "172.16.14.127",
|
||||
"port": 3306
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
prefix=ddxq2
|
||||
server_id=1
|
||||
server_type=game_server
|
||||
server_name=自己的名字_1
|
||||
ip=
|
||||
game_host=
|
||||
tcp_port=18001
|
||||
http_port=19001
|
||||
login_node=ddxq2_login_server_s900@172.16.14.122
|
||||
center_node=ddxq2_center_server_s1@172.16.14.122
|
||||
db_host=172.16.12.220
|
||||
db_port=3306
|
||||
db_user=ddxqadmin
|
||||
db_pass=ddxq@44168deabe63
|
||||
db_save_time=300000
|
||||
db_save_count=10000
|
||||
log_save_time=120000
|
||||
log_save_count=1000
|
||||
log_dir=run/server/log
|
||||
role_log=run/server/log
|
||||
logger_level=debug
|
||||
open_time={{2025,1,1},{10,0,0}}
|
||||
merge_server_ids=[]
|
||||
merge_server_time={{1970,1,1},{0,0,0}}
|
||||
last_merge_server_ids=[]
|
||||
game_tcp_port=18001
|
||||
login_host=172.16.14.122
|
||||
login_http_port=19900
|
||||
is_develop=true
|
||||
is_inner=true
|
||||
auto_reload=true
|
||||
gm_auth=true
|
||||
risk_control_server_ip=msg.4399sy.com
|
||||
risk_control_server_post=5978
|
||||
game_id_min=10
|
||||
game_id_max=9999
|
||||
game_id_default=10
|
||||
login_id_min=1
|
||||
login_id_max=1000
|
||||
login_id_default=1
|
||||
center_id_min=1
|
||||
center_id_max=10
|
||||
center_id_default=1
|
||||
cross_id_min=10000
|
||||
cross_id_max=99999
|
||||
cross_id_default=10000
|
||||
client_id_min=10
|
||||
client_id_max=9999
|
||||
client_id_default=10
|
||||
login_db_name=
|
||||
login_db_server_id=900
|
||||
login_db_host=172.16.12.220
|
||||
login_db_port=3306
|
||||
login_db_user=ddxqadmin
|
||||
login_db_pass=ddxq@44168deabe63
|
||||
cookie=ddxq2-node
|
||||
required_keys_base=prefix,server_id,server_type,ip,db_host,db_user,db_pass,db_port,log_dir,db_game_name,auto_reload
|
||||
required_keys_game=server_name,game_host,tcp_port,http_port,open_time,login_node,center_node,db_log_name
|
||||
required_keys_login=tcp_port
|
||||
required_keys_center=open_time,login_node,db_log_name
|
||||
required_keys_cross=open_time,center_node,db_log_name
|
||||
required_keys_client=tcp_port,game_host,login_host,login_http_port,login_node
|
||||
config_keys_base=prefix,server_id,server_type,ip,db_host,db_port,db_user,db_pass,db_save_time,db_save_count,log_save_time,log_save_count,log_dir,logger_level,is_develop,is_inner,auto_reload,gm_auth,cookie,db_game_name
|
||||
config_keys_game=server_name,game_host,tcp_port,http_port,login_node,center_node,open_time,merge_server_ids,merge_server_time,last_merge_server_ids,risk_control_server_ip,risk_control_server_post,role_log,db_log_name
|
||||
config_keys_login=tcp_port
|
||||
config_keys_center=open_time,login_node,db_log_name
|
||||
config_keys_cross=open_time,center_node,db_log_name
|
||||
config_keys_client=tcp_port,game_host,game_tcp_port,login_host,login_http_port,login_node
|
||||
editable_config_base=prefix,server_id,server_type,ip,db_host,db_port,db_user,db_pass,log_dir,logger_level,auto_reload,cookie
|
||||
editable_config_game=server_name,game_host,tcp_port,http_port,login_node,center_node,open_time,role_log
|
||||
@@ -0,0 +1,168 @@
|
||||
[
|
||||
%% Center server config
|
||||
{center_server, [
|
||||
{server_type, center_server},
|
||||
{server_id, ${server_id}},
|
||||
{login_node, '${login_node}'},
|
||||
{open_time, ${open_time}},
|
||||
{gm_auth, ${gm_auth}},
|
||||
{is_develop, ${is_develop}},
|
||||
{is_inner, ${is_inner}},
|
||||
{is_mainland, true},
|
||||
{auto_reload, ${auto_reload}},
|
||||
%% Logger config
|
||||
{logger, [
|
||||
{handler, info, ms_logger_std, #{
|
||||
level => info,
|
||||
config => #{
|
||||
file => "${log_dir}/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
|
||||
},
|
||||
filter_default => stop,
|
||||
filters => [
|
||||
{domain, {fun logger_filters:domain/2, {log, equal, [ms_base]}}}
|
||||
],
|
||||
formatter => {logger_formatter, #{
|
||||
max_size => 2000,
|
||||
single_line => false,
|
||||
legacy_header => false,
|
||||
template => ["====| ", time, " | ", level, " | ", {id, [id], ["undefined"]}, " | ", mfa, ":", line, " | ", pid, " |====\n", msg, "\n"]
|
||||
}}
|
||||
}},
|
||||
|
||||
{handler, error, ms_logger_std, #{
|
||||
level => error,
|
||||
config => #{
|
||||
file => "${log_dir}/error.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
|
||||
},
|
||||
filter_default => stop,
|
||||
filters => [
|
||||
{domain, {fun logger_filters:domain/2, {log, equal, [ms_base]}}}
|
||||
],
|
||||
formatter => {logger_formatter, #{
|
||||
max_size => 10000,
|
||||
single_line => false,
|
||||
legacy_header => false,
|
||||
template => ["====| ", time, " | ", level, " | ", {id, [id], ["undefined"]}, " | ", mfa, ":", line, " | ", pid, " |====\n", msg, "\n"]
|
||||
}}
|
||||
}},
|
||||
|
||||
{handler, http_log, ms_logger_std, #{
|
||||
level => info,
|
||||
config => #{
|
||||
file => "${log_dir}/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
|
||||
},
|
||||
filter_default => stop,
|
||||
filters => [
|
||||
{http_domain, {fun logger_filters:domain/2, {log, equal, [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"]
|
||||
}}
|
||||
}}
|
||||
]}
|
||||
]},
|
||||
|
||||
%% ms_cache config
|
||||
{ms_cache, [
|
||||
{data_node, undefined},
|
||||
{cache_db_type, ets},
|
||||
{data_fmt, record},
|
||||
{table_worker_count, 8},
|
||||
{db_save_time, ${db_save_time}},
|
||||
{db_save_count, ${db_save_count}},
|
||||
{db_driver, 'mysql-otp'},
|
||||
{db_user, "${db_user}"},
|
||||
{db_pass, "${db_pass}"},
|
||||
{db_host, "${db_host}"},
|
||||
{db_port, ${db_port}},
|
||||
{db_name, "${db_game_name}"},
|
||||
{db_encoding, utf8},
|
||||
{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,
|
||||
drop_table => false,
|
||||
alter_table => true,
|
||||
patch_run_mod => auto,
|
||||
patch_prefix => "patch_",
|
||||
limit => 7
|
||||
}}
|
||||
]},
|
||||
|
||||
%% ms_tbllog config
|
||||
{ms_tbllog, [
|
||||
{data_node, undefined},
|
||||
{data_fmt, record},
|
||||
{db_save_start_time, 60000},
|
||||
{db_save_time, ${log_save_time}},
|
||||
{db_save_count, ${log_save_count}},
|
||||
{db_driver, 'mysql-otp'},
|
||||
{db_user, "${db_user}"},
|
||||
{db_pass, "${db_pass}"},
|
||||
{db_host, "${db_host}"},
|
||||
{db_port, ${db_port}},
|
||||
{db_name, "${db_log_name}"},
|
||||
{db_encoding, utf8},
|
||||
{db_update_pool_name, tbllog_pool_name},
|
||||
{db_update_pool_size, 10}
|
||||
]},
|
||||
|
||||
%% kernel config
|
||||
{kernel, [
|
||||
{inet_dist_listen_min, 16000},
|
||||
{inet_dist_listen_max, 17000},
|
||||
{logger_level, ${logger_level}},
|
||||
{logger, [
|
||||
{filters, stop, [
|
||||
{domain, {fun logger_filters:domain/2, {log, equal, [ms_base]}}},
|
||||
{http_domain, {fun logger_filters:domain/2, {log, equal, [ms_http]}}}
|
||||
]},
|
||||
{handler, default, logger_std_h, #{
|
||||
level => ${logger_level},
|
||||
filter_default => stop,
|
||||
filters => [{need_level, {fun logger_filters:level/2, {log, gteq, info}}}],
|
||||
formatter => {logger_formatter, #{
|
||||
max_size => 10000,
|
||||
single_line => false,
|
||||
legacy_header => false,
|
||||
template => ["====| ", time, " | ", level, " | ", {id, [id], ["undefined"]}, " | ", mfa, ":", line, " | ", pid, " |====\n", msg, "\n"]
|
||||
}}
|
||||
}}
|
||||
]}
|
||||
]},
|
||||
|
||||
%% sasl config
|
||||
{sasl, [
|
||||
{sasl_error_logger, false}
|
||||
]}
|
||||
].
|
||||
@@ -0,0 +1,94 @@
|
||||
[
|
||||
%% 客户端压测服配置
|
||||
{client_server, [
|
||||
{host, "${game_host}"},
|
||||
{tcp_port, ${tcp_port}},
|
||||
{server_id, ${server_id}},
|
||||
{login_server_host, "${login_host}"},
|
||||
{login_server_http_port, ${login_http_port}},
|
||||
{login_node, '${login_node}'},
|
||||
{game_tcp_port, ${game_tcp_port}},
|
||||
{test_mods, [test_item]},
|
||||
|
||||
%% 日志文件配置
|
||||
{logger, [
|
||||
{handler, info, ms_logger_std, #{
|
||||
level => info,
|
||||
config => #{
|
||||
file => "${log_dir}/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
|
||||
},
|
||||
filter_default => stop,
|
||||
filters => [
|
||||
{domain, {fun logger_filters:domain/2, {log, equal, [ms_base]}}}
|
||||
],
|
||||
formatter => {logger_formatter, #{
|
||||
max_size => 2000,
|
||||
single_line => false,
|
||||
legacy_header => false,
|
||||
template => ["====| ", time, " | ", level, " | ", {id, [id], ["undefined"]}, " | ", mfa, ":", line, " | ", pid, " |====\n", msg, "\n"]
|
||||
}}
|
||||
}},
|
||||
|
||||
{handler, error, ms_logger_std, #{
|
||||
level => error,
|
||||
config => #{
|
||||
file => "${log_dir}/error.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
|
||||
},
|
||||
filter_default => stop,
|
||||
filters => [
|
||||
{domain, {fun logger_filters:domain/2, {log, equal, [ms_base]}}}
|
||||
],
|
||||
formatter => {logger_formatter, #{
|
||||
max_size => 10000,
|
||||
single_line => false,
|
||||
legacy_header => false,
|
||||
template => ["====| ", time, " | ", level, " | ", {id, [id], ["undefined"]}, " | ", mfa, ":", line, " | ", pid, " |====\n", msg, "\n"]
|
||||
}}
|
||||
}}
|
||||
]}
|
||||
]},
|
||||
|
||||
%% kernel 配置
|
||||
{kernel, [
|
||||
{inet_dist_listen_min, 16000},
|
||||
{inet_dist_listen_max, 17000},
|
||||
{logger_level, ${logger_level}},
|
||||
{logger, [
|
||||
{filters, stop, [
|
||||
{domain, {fun logger_filters:domain/2, {log, equal, [ms_base]}}}
|
||||
]},
|
||||
{handler, default, logger_std_h, #{
|
||||
level => ${logger_level},
|
||||
filter_default => stop,
|
||||
filters => [{need_level, {fun logger_filters:level/2, {log, gteq, info}}}],
|
||||
formatter => {logger_formatter, #{
|
||||
max_size => 10000,
|
||||
single_line => false,
|
||||
legacy_header => false,
|
||||
template => ["====| ", time, " | ", level, " | ", {id, [id], ["undefined"]}, " | ", mfa, ":", line, " | ", pid, " |====\n", msg, "\n"]
|
||||
}}
|
||||
}}
|
||||
]}
|
||||
]},
|
||||
|
||||
%% sasl 配置
|
||||
{sasl, [
|
||||
{sasl_error_logger, false}
|
||||
]}
|
||||
].
|
||||
@@ -0,0 +1,168 @@
|
||||
[
|
||||
%% Cross server config
|
||||
{cross_server, [
|
||||
{server_type, cross_server},
|
||||
{server_id, ${server_id}},
|
||||
{center_node, '${center_node}'},
|
||||
{open_time, ${open_time}},
|
||||
{gm_auth, ${gm_auth}},
|
||||
{is_develop, ${is_develop}},
|
||||
{is_inner, ${is_inner}},
|
||||
{is_mainland, true},
|
||||
|
||||
%% Logger config
|
||||
{logger, [
|
||||
{handler, info, ms_logger_std, #{
|
||||
level => info,
|
||||
config => #{
|
||||
file => "${log_dir}/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
|
||||
},
|
||||
filter_default => stop,
|
||||
filters => [
|
||||
{domain, {fun logger_filters:domain/2, {log, equal, [ms_base]}}}
|
||||
],
|
||||
formatter => {logger_formatter, #{
|
||||
max_size => 2000,
|
||||
single_line => false,
|
||||
legacy_header => false,
|
||||
template => ["====| ", time, " | ", level, " | ", {id, [id], ["undefined"]}, " | ", mfa, ":", line, " | ", pid, " |====\n", msg, "\n"]
|
||||
}}
|
||||
}},
|
||||
|
||||
{handler, error, ms_logger_std, #{
|
||||
level => error,
|
||||
config => #{
|
||||
file => "${log_dir}/error.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
|
||||
},
|
||||
filter_default => stop,
|
||||
filters => [
|
||||
{domain, {fun logger_filters:domain/2, {log, equal, [ms_base]}}}
|
||||
],
|
||||
formatter => {logger_formatter, #{
|
||||
max_size => 10000,
|
||||
single_line => false,
|
||||
legacy_header => false,
|
||||
template => ["====| ", time, " | ", level, " | ", {id, [id], ["undefined"]}, " | ", mfa, ":", line, " | ", pid, " |====\n", msg, "\n"]
|
||||
}}
|
||||
}},
|
||||
|
||||
{handler, http_log, ms_logger_std, #{
|
||||
level => info,
|
||||
config => #{
|
||||
file => "${log_dir}/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
|
||||
},
|
||||
filter_default => stop,
|
||||
filters => [
|
||||
{http_domain, {fun logger_filters:domain/2, {log, equal, [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"]
|
||||
}}
|
||||
}}
|
||||
]}
|
||||
]},
|
||||
|
||||
%% ms_cache config
|
||||
{ms_cache, [
|
||||
{data_node, undefined},
|
||||
{cache_db_type, ets},
|
||||
{data_fmt, record},
|
||||
{table_worker_count, 8},
|
||||
{db_save_time, ${db_save_time}},
|
||||
{db_save_count, ${db_save_count}},
|
||||
{db_driver, 'mysql-otp'},
|
||||
{db_user, "${db_user}"},
|
||||
{db_pass, "${db_pass}"},
|
||||
{db_host, "${db_host}"},
|
||||
{db_port, ${db_port}},
|
||||
{db_name, "${db_game_name}"},
|
||||
{db_encoding, utf8},
|
||||
{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,
|
||||
drop_table => false,
|
||||
alter_table => true,
|
||||
patch_run_mod => auto,
|
||||
patch_prefix => "patch_",
|
||||
limit => 7
|
||||
}}
|
||||
]},
|
||||
|
||||
%% ms_tbllog config
|
||||
{ms_tbllog, [
|
||||
{data_node, undefined},
|
||||
{data_fmt, record},
|
||||
{db_save_start_time, 60000},
|
||||
{db_save_time, ${log_save_time}},
|
||||
{db_save_count, ${log_save_count}},
|
||||
{db_driver, 'mysql-otp'},
|
||||
{db_user, "${db_user}"},
|
||||
{db_pass, "${db_pass}"},
|
||||
{db_host, "${db_host}"},
|
||||
{db_port, ${db_port}},
|
||||
{db_name, "${db_log_name}"},
|
||||
{db_encoding, utf8},
|
||||
{db_update_pool_name, tbllog_pool_name},
|
||||
{db_update_pool_size, 10}
|
||||
]},
|
||||
|
||||
%% kernel config
|
||||
{kernel, [
|
||||
{inet_dist_listen_min, 16000},
|
||||
{inet_dist_listen_max, 17000},
|
||||
{logger_level, ${logger_level}},
|
||||
{logger, [
|
||||
{filters, stop, [
|
||||
{domain, {fun logger_filters:domain/2, {log, equal, [ms_base]}}},
|
||||
{http_domain, {fun logger_filters:domain/2, {log, equal, [ms_http]}}}
|
||||
]},
|
||||
{handler, default, logger_std_h, #{
|
||||
level => ${logger_level},
|
||||
filter_default => stop,
|
||||
filters => [{need_level, {fun logger_filters:level/2, {log, gteq, info}}}],
|
||||
formatter => {logger_formatter, #{
|
||||
max_size => 10000,
|
||||
single_line => false,
|
||||
legacy_header => false,
|
||||
template => ["====| ", time, " | ", level, " | ", {id, [id], ["undefined"]}, " | ", mfa, ":", line, " | ", pid, " |====\n", msg, "\n"]
|
||||
}}
|
||||
}}
|
||||
]}
|
||||
]},
|
||||
|
||||
%% sasl config
|
||||
{sasl, [
|
||||
{sasl_error_logger, false}
|
||||
]}
|
||||
].
|
||||
@@ -0,0 +1,181 @@
|
||||
[
|
||||
%% 游戏服配置
|
||||
{game_server, [
|
||||
{server_type, game_server},
|
||||
{platform_zone, 0},
|
||||
{tcp_port, ${tcp_port}},
|
||||
{http_port, ${http_port}},
|
||||
{server_id, ${server_id}},
|
||||
{server_name, "${server_name}"},
|
||||
{main_platform, "android_cn"},
|
||||
{merge_server_ids, ${merge_server_ids}},
|
||||
{login_node, '${login_node}'},
|
||||
{center_node, '${center_node}'},
|
||||
{open_time, ${open_time}},
|
||||
{gm_auth, ${gm_auth}},
|
||||
{is_develop, ${is_develop}},
|
||||
{is_inner, ${is_inner}},
|
||||
{is_mainland, true},
|
||||
{auto_reload, ${auto_reload}},
|
||||
{game_host, "${game_host}"},
|
||||
{game_tcp_port, ${game_tcp_port}},
|
||||
{role_log, "${role_log}"},
|
||||
{risk_control_server_ip, "${risk_control_server_ip}"},
|
||||
{risk_control_server_post, ${risk_control_server_post}},
|
||||
|
||||
%% 日志文件配置
|
||||
{logger, [
|
||||
{handler, info, ms_logger_std, #{
|
||||
level => info,
|
||||
config => #{
|
||||
file => "${log_dir}/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
|
||||
},
|
||||
filter_default => stop,
|
||||
filters => [
|
||||
{domain, {fun logger_filters:domain/2, {log, equal, [ms_base]}}}
|
||||
],
|
||||
formatter => {logger_formatter, #{
|
||||
max_size => 2000,
|
||||
single_line => false,
|
||||
legacy_header => false,
|
||||
template => ["====| ", time, " | ", level, " | ", {id, [id], ["undefined"]}, " | ", mfa, ":", line, " | ", pid, " |====\n", msg, "\n"]
|
||||
}}
|
||||
}},
|
||||
|
||||
{handler, error, ms_logger_std, #{
|
||||
level => error,
|
||||
config => #{
|
||||
file => "${log_dir}/error.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
|
||||
},
|
||||
filter_default => stop,
|
||||
filters => [
|
||||
{domain, {fun logger_filters:domain/2, {log, equal, [ms_base]}}}
|
||||
],
|
||||
formatter => {logger_formatter, #{
|
||||
max_size => 10000,
|
||||
single_line => false,
|
||||
legacy_header => false,
|
||||
template => ["====| ", time, " | ", level, " | ", {id, [id], ["undefined"]}, " | ", mfa, ":", line, " | ", pid, " |====\n", msg, "\n"]
|
||||
}}
|
||||
}},
|
||||
|
||||
{handler, http_log, ms_logger_std, #{
|
||||
level => info,
|
||||
config => #{
|
||||
file => "${log_dir}/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
|
||||
},
|
||||
filter_default => stop,
|
||||
filters => [
|
||||
{http_domain, {fun logger_filters:domain/2, {log, equal, [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"]
|
||||
}}
|
||||
}}
|
||||
]}
|
||||
]},
|
||||
|
||||
%% ms_cache 缓存配置
|
||||
{ms_cache, [
|
||||
{data_node, undefined},
|
||||
{cache_db_type, ets},
|
||||
{data_fmt, record},
|
||||
{table_worker_count, 8},
|
||||
{db_save_time, ${db_save_time}},
|
||||
{db_save_count, ${db_save_count}},
|
||||
{db_driver, 'mysql-otp'},
|
||||
{db_user, "${db_user}"},
|
||||
{db_pass, "${db_pass}"},
|
||||
{db_host, "${db_host}"},
|
||||
{db_port, ${db_port}},
|
||||
{db_name, "${db_game_name}"},
|
||||
{db_encoding, utf8},
|
||||
{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,
|
||||
drop_table => false,
|
||||
alter_table => true,
|
||||
patch_run_mod => auto,
|
||||
patch_prefix => "patch_",
|
||||
limit => 7
|
||||
}}
|
||||
]},
|
||||
|
||||
%% ms_tbllog 后台日志配置
|
||||
{ms_tbllog, [
|
||||
{data_node, undefined},
|
||||
{data_fmt, record},
|
||||
{db_save_start_time, 60000},
|
||||
{db_save_time, ${log_save_time}},
|
||||
{db_save_count, ${log_save_count}},
|
||||
{db_driver, 'mysql-otp'},
|
||||
{db_user, "${db_user}"},
|
||||
{db_pass, "${db_pass}"},
|
||||
{db_host, "${db_host}"},
|
||||
{db_port, ${db_port}},
|
||||
{db_name, "${db_log_name}"},
|
||||
{db_encoding, utf8},
|
||||
{db_update_pool_name, tbllog_pool_name},
|
||||
{db_update_pool_size, 10}
|
||||
]},
|
||||
|
||||
%% kernel 配置
|
||||
{kernel, [
|
||||
{inet_dist_listen_min, 16000},
|
||||
{inet_dist_listen_max, 17000},
|
||||
{logger_level, ${logger_level}},
|
||||
{logger, [
|
||||
{filters, stop, [
|
||||
{domain, {fun logger_filters:domain/2, {log, equal, [ms_base]}}},
|
||||
{http_domain, {fun logger_filters:domain/2, {log, equal, [ms_http]}}}
|
||||
]},
|
||||
{handler, default, logger_std_h, #{
|
||||
level => ${logger_level},
|
||||
filter_default => stop,
|
||||
filters => [{need_level, {fun logger_filters:level/2, {log, gteq, info}}}],
|
||||
formatter => {logger_formatter, #{
|
||||
max_size => 10000,
|
||||
single_line => false,
|
||||
legacy_header => false,
|
||||
template => ["====| ", time, " | ", level, " | ", {id, [id], ["undefined"]}, " | ", mfa, ":", line, " | ", pid, " |====\n", msg, "\n"]
|
||||
}}
|
||||
}}
|
||||
]}
|
||||
]},
|
||||
|
||||
%% sasl 配置
|
||||
{sasl, [
|
||||
{sasl_error_logger, false}
|
||||
]}
|
||||
].
|
||||
@@ -0,0 +1,142 @@
|
||||
[
|
||||
%% 登录服配置
|
||||
{login_server, [
|
||||
{server_env, "internal"},
|
||||
{login_node_port, ${tcp_port}},
|
||||
|
||||
%% 日志文件配置
|
||||
{logger, [
|
||||
{handler, info, ms_logger_std, #{
|
||||
level => info,
|
||||
config => #{
|
||||
file => "${log_dir}/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
|
||||
},
|
||||
filter_default => stop,
|
||||
filters => [
|
||||
{domain, {fun logger_filters:domain/2, {log, equal, [ms_base]}}}
|
||||
],
|
||||
formatter => {logger_formatter, #{
|
||||
max_size => 2000,
|
||||
single_line => false,
|
||||
legacy_header => false,
|
||||
template => ["====| ", time, " | ", level, " | ", {id, [id], ["undefined"]}, " | ", mfa, ":", line, " | ", pid, " |====\n", msg, "\n"]
|
||||
}}
|
||||
}},
|
||||
|
||||
{handler, error, ms_logger_std, #{
|
||||
level => error,
|
||||
config => #{
|
||||
file => "${log_dir}/error.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
|
||||
},
|
||||
filter_default => stop,
|
||||
filters => [
|
||||
{domain, {fun logger_filters:domain/2, {log, equal, [ms_base]}}}
|
||||
],
|
||||
formatter => {logger_formatter, #{
|
||||
max_size => 10000,
|
||||
single_line => false,
|
||||
legacy_header => false,
|
||||
template => ["====| ", time, " | ", level, " | ", {id, [id], ["undefined"]}, " | ", mfa, ":", line, " | ", pid, " |====\n", msg, "\n"]
|
||||
}}
|
||||
}},
|
||||
|
||||
{handler, http_log, ms_logger_std, #{
|
||||
level => info,
|
||||
config => #{
|
||||
file => "${log_dir}/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
|
||||
},
|
||||
filter_default => stop,
|
||||
filters => [
|
||||
{http_domain, {fun logger_filters:domain/2, {log, equal, [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"]
|
||||
}}
|
||||
}}
|
||||
]}
|
||||
]},
|
||||
|
||||
%% ms_cache 缓存配置
|
||||
{ms_cache, [
|
||||
{data_node, undefined},
|
||||
{cache_db_type, proc},
|
||||
{data_fmt, record},
|
||||
{db_save_time, ${db_save_time}},
|
||||
{db_save_count, ${db_save_count}},
|
||||
{db_driver, 'mysql-otp'},
|
||||
{db_user, "${login_db_user}"},
|
||||
{db_pass, "${login_db_pass}"},
|
||||
{db_host, "${login_db_host}"},
|
||||
{db_port, ${login_db_port}},
|
||||
{db_name, "${db_game_name}"},
|
||||
{db_encoding, utf8},
|
||||
{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, [
|
||||
{inet_dist_listen_min, 16000},
|
||||
{inet_dist_listen_max, 17000},
|
||||
{logger_level, ${logger_level}},
|
||||
{logger, [
|
||||
{filters, stop, [
|
||||
{domain, {fun logger_filters:domain/2, {log, equal, [ms_base]}}},
|
||||
{http_domain, {fun logger_filters:domain/2, {log, equal, [ms_http]}}}
|
||||
]},
|
||||
{handler, default, logger_std_h, #{
|
||||
level => ${logger_level},
|
||||
filter_default => stop,
|
||||
filters => [{need_level, {fun logger_filters:level/2, {log, gteq, info}}}],
|
||||
formatter => {logger_formatter, #{
|
||||
max_size => 10000,
|
||||
single_line => false,
|
||||
legacy_header => false,
|
||||
template => ["====| ", time, " | ", level, " | ", {id, [id], ["undefined"]}, " | ", mfa, ":", line, " | ", pid, " |====\n", msg, "\n"]
|
||||
}}
|
||||
}}
|
||||
]}
|
||||
]},
|
||||
|
||||
%% sasl 配置
|
||||
{sasl, [
|
||||
{sasl_error_logger, false}
|
||||
]}
|
||||
].
|
||||
@@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env python3
|
||||
"""将 PNG 图标转换为 ICO 格式"""
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
def convert_png_to_ico():
|
||||
"""将 icon.png 转换为 icon.ico"""
|
||||
try:
|
||||
from PIL import Image
|
||||
except ImportError:
|
||||
print("需要安装 Pillow: pip install Pillow")
|
||||
return False
|
||||
|
||||
# 优先使用运行目录下的 icon 目录
|
||||
cwd_icon = Path.cwd() / 'icon'
|
||||
if (cwd_icon / 'icon.png').exists():
|
||||
icon_dir = cwd_icon
|
||||
elif (Path.cwd() / 'src' / 'icon' / 'icon.png').exists():
|
||||
icon_dir = Path.cwd() / 'src' / 'icon'
|
||||
else:
|
||||
icon_dir = Path(__file__).parent
|
||||
png_path = icon_dir / 'icon.png'
|
||||
ico_path = icon_dir / 'icon.ico'
|
||||
|
||||
if not png_path.exists():
|
||||
print(f"找不到 PNG 文件: {png_path}")
|
||||
return False
|
||||
|
||||
try:
|
||||
# 打开 PNG 图像
|
||||
img = Image.open(png_path)
|
||||
|
||||
# 转换为 RGBA 模式(如果不是的话)
|
||||
if img.mode != 'RGBA':
|
||||
img = img.convert('RGBA')
|
||||
|
||||
# 创建多尺寸的 ICO 文件
|
||||
sizes = [(16, 16), (32, 32), (48, 48), (64, 64), (128, 128), (256, 256)]
|
||||
icons = []
|
||||
|
||||
for size in sizes:
|
||||
resized = img.resize(size, Image.Resampling.LANCZOS)
|
||||
icons.append(resized)
|
||||
|
||||
# 保存为 ICO
|
||||
icons[0].save(ico_path, format='ICO', sizes=[(s[0], s[1]) for s in sizes])
|
||||
|
||||
print(f"已生成 ICO 文件: {ico_path}")
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f"转换失败: {e}")
|
||||
return False
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
convert_png_to_ico()
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 652 B |
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"version": "1.1.3",
|
||||
"update_url": "http://172.18.180.94:3000/api/file?path=server_manager/build/output/version.json",
|
||||
"release_notes": "增加启停按钮",
|
||||
"download_url": "http://172.18.180.94:3000/api/download?path=server_manager/build/output/ServerManager_Setup.exe",
|
||||
"full_installer_url": "http://172.18.180.94:3000/api/download?path=server_manager/build/output/ServerManager_Setup.exe",
|
||||
"delta_updates": {}
|
||||
}
|
||||
Reference in New Issue
Block a user