@@ -1067,6 +1067,27 @@ end}.
1067
1067
{mapping, "log.syslog", "rabbit.log.syslog.enabled", [
1068
1068
{datatype, {enum, [true, false]}}
1069
1069
]}.
1070
+
1071
+ {translation, "rabbit.log.syslog.enabled",
1072
+ fun(Conf) ->
1073
+ case cuttlefish:conf_get("log.syslog", Conf) of
1074
+ true ->
1075
+ case cuttlefish:conf_get("log.syslog.ip", Conf, undefined) of
1076
+ undefined ->
1077
+ case cuttlefish:conf_get("log.syslog.host", Conf, undefined) of
1078
+ undefined ->
1079
+ cuttlefish:invalid("Either log.syslog.ip or log.syslog.host must be set");
1080
+ _Host ->
1081
+ true
1082
+ end;
1083
+ _IpAddr ->
1084
+ true
1085
+ end;
1086
+ _ ->
1087
+ []
1088
+ end
1089
+ end}.
1090
+
1070
1091
{mapping, "log.syslog.level", "rabbit.log.syslog.level", [
1071
1092
{datatype, {enum, [debug, info, notice, warning, error, critical, alert, emergency, none]}}
1072
1093
]}.
@@ -1086,10 +1107,31 @@ end}.
1086
1107
{datatype, {enum, [true, false]}}
1087
1108
]}.
1088
1109
1110
+ {mapping, "log.syslog.ip", "syslog.dest_host", [
1111
+ {datatype, string},
1112
+ {validators, ["is_ip"]}
1113
+ ]}.
1114
+
1089
1115
{mapping, "log.syslog.host", "syslog.dest_host", [
1090
1116
{datatype, string}
1091
1117
]}.
1092
1118
1119
+ {translation, "syslog.dest_host",
1120
+ fun(Conf) ->
1121
+ case cuttlefish:conf_get("log.syslog", Conf) of
1122
+ true ->
1123
+ case cuttlefish:conf_get("log.syslog.ip", Conf, undefined) of
1124
+ undefined ->
1125
+ % If log.syslog.ip is not set, then this must be set
1126
+ cuttlefish:conf_get("log.syslog.host", Conf);
1127
+ IpAddr ->
1128
+ IpAddr
1129
+ end;
1130
+ _ ->
1131
+ cuttlefish:invalid("log.syslog must be set to true to set log.syslog.host or log.syslog.ip")
1132
+ end
1133
+ end}.
1134
+
1093
1135
{mapping, "log.syslog.port", "syslog.dest_port", [
1094
1136
{datatype, integer}
1095
1137
]}.
@@ -1352,6 +1394,12 @@ fun(File) ->
1352
1394
element(1, ReadFile) == ok
1353
1395
end}.
1354
1396
1397
+ {validator, "is_ip", "string is a valid IP address",
1398
+ fun(IpStr) ->
1399
+ Res = inet:parse_address(IpStr),
1400
+ element(1, Res) == ok
1401
+ end}.
1402
+
1355
1403
{validator, "non_negative_integer", "number should be greater or equal to zero",
1356
1404
fun(Int) when is_integer(Int) ->
1357
1405
Int >= 0
0 commit comments