(containerID string, config map[string]string)
| 153 | } |
| 154 | |
| 155 | func parseSyslog(containerID string, config map[string]string) (*syslog.Writer, error) { |
| 156 | tag := containerID[:12] |
| 157 | if cfgTag, ok := config[Tag]; ok { |
| 158 | tag = cfgTag |
| 159 | } |
| 160 | proto, address, err := parseSyslogAddress(config[syslogAddress]) |
| 161 | if err != nil { |
| 162 | return nil, err |
| 163 | } |
| 164 | facility, err := parseSyslogFacility(config[syslogFacility]) |
| 165 | if err != nil { |
| 166 | return nil, err |
| 167 | } |
| 168 | syslogFormatter, syslogFramer, err := parseSyslogLogFormat(config[syslogFormat], proto) |
| 169 | if err != nil { |
| 170 | return nil, err |
| 171 | } |
| 172 | var logger *syslog.Writer |
| 173 | if proto == syslogSecureProto { |
| 174 | tlsConfig, tlsErr := parseTLSConfig(config) |
| 175 | if tlsErr != nil { |
| 176 | return nil, tlsErr |
| 177 | } |
| 178 | logger, err = syslog.DialWithTLSConfig(proto, address, facility, tag, tlsConfig) |
| 179 | } else { |
| 180 | logger, err = syslog.Dial(proto, address, facility, tag) |
| 181 | } |
| 182 | |
| 183 | if err != nil { |
| 184 | return nil, err |
| 185 | } |
| 186 | |
| 187 | logger.SetFormatter(syslogFormatter) |
| 188 | logger.SetFramer(syslogFramer) |
| 189 | |
| 190 | return logger, nil |
| 191 | } |
| 192 | |
| 193 | func parseSyslogAddress(address string) (string, string, error) { |
| 194 | if address == "" { |
no test coverage detected
searching dependent graphs…