[MM-54288] Support Packet V2 (#29403)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
091d1bba8b
Коммит
8d4bf4bae0
@@ -9,6 +9,7 @@ import (
|
||||
"io"
|
||||
"net/http"
|
||||
"os"
|
||||
"path"
|
||||
"time"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
@@ -16,6 +17,7 @@ import (
|
||||
"github.com/mattermost/mattermost/server/public/model"
|
||||
"github.com/mattermost/mattermost/server/public/shared/mlog"
|
||||
"github.com/mattermost/mattermost/server/public/shared/request"
|
||||
"github.com/mattermost/mattermost/server/public/utils"
|
||||
"github.com/mattermost/mattermost/server/v8/config"
|
||||
)
|
||||
|
||||
@@ -246,6 +248,44 @@ func (ps *PlatformService) GetNotificationLogFile(_ request.CTX) (*model.FileDat
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (ps *PlatformService) GetAdvancedLogs(_ request.CTX) ([]*model.FileData, error) {
|
||||
advancedLoggingJSON := ps.Config().LogSettings.AdvancedLoggingJSON
|
||||
if utils.IsEmptyJSON(advancedLoggingJSON) {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
cfg := make(mlog.LoggerConfiguration)
|
||||
err := json.Unmarshal(advancedLoggingJSON, &cfg)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "invalid advanced logging configuration")
|
||||
}
|
||||
|
||||
var ret []*model.FileData
|
||||
for _, t := range cfg {
|
||||
if t.Type != "file" {
|
||||
continue
|
||||
}
|
||||
var fileOption struct {
|
||||
Filename string `json:"filename"`
|
||||
}
|
||||
if err := json.Unmarshal(t.Options, &fileOption); err != nil {
|
||||
return nil, errors.Wrap(err, "error decoding file target options")
|
||||
}
|
||||
data, err := os.ReadFile(fileOption.Filename)
|
||||
if err != nil {
|
||||
return nil, errors.Wrapf(err, "failed to read notifcation log file at path %s", fileOption.Filename)
|
||||
}
|
||||
|
||||
fileName := path.Base(fileOption.Filename)
|
||||
ret = append(ret, &model.FileData{
|
||||
Filename: fileName,
|
||||
Body: data,
|
||||
})
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func isLogFilteredByLevel(logFilter *model.LogFilter, entry *model.LogEntry) bool {
|
||||
logLevels := logFilter.LogLevels
|
||||
if len(logLevels) == 0 {
|
||||
|
||||
Ссылка в новой задаче
Block a user