code.gitea.io/gitea@v1.22.3/modules/log/event_writer_console.go (about)

     1  // Copyright 2023 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package log
     5  
     6  import (
     7  	"io"
     8  	"os"
     9  )
    10  
    11  type WriterConsoleOption struct {
    12  	Stderr bool
    13  }
    14  
    15  type eventWriterConsole struct {
    16  	*EventWriterBaseImpl
    17  }
    18  
    19  var _ EventWriter = (*eventWriterConsole)(nil)
    20  
    21  type nopCloser struct {
    22  	io.Writer
    23  }
    24  
    25  func (nopCloser) Close() error { return nil }
    26  
    27  func NewEventWriterConsole(name string, mode WriterMode) EventWriter {
    28  	w := &eventWriterConsole{EventWriterBaseImpl: NewEventWriterBase(name, "console", mode)}
    29  	opt := mode.WriterOption.(WriterConsoleOption)
    30  	if opt.Stderr {
    31  		w.OutputWriteCloser = nopCloser{os.Stderr}
    32  	} else {
    33  		w.OutputWriteCloser = nopCloser{os.Stdout}
    34  	}
    35  	return w
    36  }
    37  
    38  func init() {
    39  	RegisterEventWriter("console", NewEventWriterConsole)
    40  }