func()

in spectator/writer/unixgram_writer.go [38:64]


func (u *UnixgramWriter) Write(line string) {
	u.logger.Debugf("Sending line: %s", line)

	if u.conn != nil {
		if _, err := u.conn.Write([]byte(line)); err != nil {
			u.logger.Errorf("failed to write to unix socket: %v\n", err)

			if strings.Contains(err.Error(), "transport endpoint is not connected") {
				u.logger.Infof("close unix socket")
				err := u.conn.Close()
				if err != nil {
					u.logger.Errorf("failed to close unix socket: %v\n", err)
				}
				u.conn = nil
			}
		}
	} else {
		u.logger.Infof("re-dial unix socket")

		conn, err := net.DialUnix("unixgram", nil, u.addr)
		if err != nil {
			u.logger.Errorf("failed to dial unix socket: %v", err)
		} else {
			u.conn = conn
		}
	}
}