func NewLogger(writer io.Writer, verbose bool, cfTrace, configTrace string) Printer { LoggingToStdout = verbose var printers []Printer stdoutLogger := NewWriterPrinter(writer, true) for _, path := range []string{cfTrace, configTrace} { b, err := strconv.ParseBool(path) LoggingToStdout = LoggingToStdout || b if path != "" && err != nil { file, err := fileutils.Open(path) if err == nil { printers = append(printers, NewWriterPrinter(file, false)) } else { stdoutLogger.Printf(T("CF_TRACE ERROR CREATING LOG FILE {{.Path}}:\n{{.Err}}", map[string]interface{}{"Path": path, "Err": err})) LoggingToStdout = true } } } if LoggingToStdout { printers = append(printers, stdoutLogger) } return CombinePrinters(printers) }
func newFileLogger(path string) Printer { file, err := fileutils.Open(path) if err != nil { logger := newStdoutLogger() logger.Printf("CF_TRACE ERROR CREATING LOG FILE %s:\n%s", path, err) return logger } return log.New(file, "", 0) }
func newFileLogger(path string) Printer { file, err := fileutils.Open(path) if err != nil { logger := newStdoutLogger() logger.Printf(T("CF_TRACE ERROR CREATING LOG FILE {{.Path}}:\n{{.Err}}", map[string]interface{}{"Path": path, "Err": err})) return logger } return log.New(file, "", 0) }
. "github.com/onsi/gomega" ) var _ = Describe("Fileutils File", func() { var fixturePath = filepath.Clean("../fixtures/fileutils/supervirus.zsh") var fixtureBytes []byte BeforeEach(func() { var err error fixtureBytes, err = ioutil.ReadFile(fixturePath) Expect(err).NotTo(HaveOccurred()) }) Describe("Open", func() { It("opens an existing file", func() { fd, err := fileutils.Open(fixturePath) Expect(err).NotTo(HaveOccurred()) fileBytes, err := ioutil.ReadAll(fd) Expect(err).NotTo(HaveOccurred()) fd.Close() Expect(fileBytes).To(Equal(fixtureBytes)) }) It("creates a non-existing file and all intermediary directories", func() { filePath := fileutils.TempPath("open_test") fd, err := fileutils.Open(filePath) Expect(err).NotTo(HaveOccurred())