mirror of
https://github.com/XTLS/Xray-core.git
synced 2025-04-30 09:18:34 +00:00
Add sub-command "-dump" to "run". (#2854)
* Add MarshalToJson(). * Add cmd arg -dump for printing out merged multiple json configs. --------- Co-authored-by: nobody <nobody@nowhere.mars>
This commit is contained in:
parent
006cf491e5
commit
44bb83033f
6 changed files with 476 additions and 10 deletions
|
@ -27,6 +27,11 @@ type generalLogger struct {
|
|||
done *done.Instance
|
||||
}
|
||||
|
||||
type serverityLogger struct {
|
||||
inner *generalLogger
|
||||
logLevel Severity
|
||||
}
|
||||
|
||||
// NewLogger returns a generic log handler that can handle all type of messages.
|
||||
func NewLogger(logWriterCreator WriterCreator) Handler {
|
||||
return &generalLogger{
|
||||
|
@ -37,6 +42,32 @@ func NewLogger(logWriterCreator WriterCreator) Handler {
|
|||
}
|
||||
}
|
||||
|
||||
func ReplaceWithSeverityLogger(serverity Severity) {
|
||||
w := CreateStdoutLogWriter()
|
||||
g := &generalLogger{
|
||||
creator: w,
|
||||
buffer: make(chan Message, 16),
|
||||
access: semaphore.New(1),
|
||||
done: done.New(),
|
||||
}
|
||||
s := &serverityLogger{
|
||||
inner: g,
|
||||
logLevel: serverity,
|
||||
}
|
||||
RegisterHandler(s)
|
||||
}
|
||||
|
||||
func (l *serverityLogger) Handle(msg Message) {
|
||||
switch msg := msg.(type) {
|
||||
case *GeneralMessage:
|
||||
if msg.Severity <= l.logLevel {
|
||||
l.inner.Handle(msg)
|
||||
}
|
||||
default:
|
||||
l.inner.Handle(msg)
|
||||
}
|
||||
}
|
||||
|
||||
func (l *generalLogger) run() {
|
||||
defer l.access.Signal()
|
||||
|
||||
|
@ -67,6 +98,7 @@ func (l *generalLogger) run() {
|
|||
}
|
||||
|
||||
func (l *generalLogger) Handle(msg Message) {
|
||||
|
||||
select {
|
||||
case l.buffer <- msg:
|
||||
default:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue