Skip to content

Commit

Permalink
fix: handle panic in logger (#1192)
Browse files Browse the repository at this point in the history
* fix: handle panic in logger

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

* refactor: change handlepanic logs

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>

---------

Signed-off-by: gouravkrosx <gouravgreatkr@gmail.com>
  • Loading branch information
gouravkrosx committed Dec 12, 2023
1 parent fa1725d commit aaf3ba3
Show file tree
Hide file tree
Showing 8 changed files with 21 additions and 14 deletions.
13 changes: 9 additions & 4 deletions pkg/platform/fs/tele.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ import (
)

// Telemetry provides interface for create-read installationID for self-hosted keploy
type Telemetry struct{}
type Telemetry struct {
logger *zap.Logger
}

func UserHomeDir(isNewConfigPath bool) string {

Expand All @@ -34,15 +36,18 @@ func UserHomeDir(isNewConfigPath bool) string {
return os.Getenv("HOME") + configFolder
}

func NewTeleFS() *Telemetry {
return &Telemetry{}
func NewTeleFS(logger *zap.Logger) *Telemetry {
return &Telemetry{
logger: logger,
}
}

func (fs *Telemetry) Get(isNewConfigPath bool) (string, error) {
var (
path = UserHomeDir(isNewConfigPath)
id = ""
)

file, err := os.OpenFile(filepath.Join(path, "installation-id.yaml"), os.O_RDONLY, os.ModePerm)
if err != nil {
return "", err
Expand All @@ -62,7 +67,7 @@ func (fs *Telemetry) Get(isNewConfigPath bool) (string, error) {

func (fs *Telemetry) Set(id string) error {
path := UserHomeDir(true)
util.CreateYamlFile(path, "installation-id", &zap.Logger{})
util.CreateYamlFile(path, "installation-id", fs.logger)

data := []byte{}

Expand Down
2 changes: 1 addition & 1 deletion pkg/service/mockrecord/mockrecord.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ func NewMockRecorder(logger *zap.Logger) MockRecorder {
func (s *mockRecorder) MockRecord(path string, proxyPort uint32, pid uint32, mockName string) {

models.SetMode(models.MODE_RECORD)
teleFS := fs.NewTeleFS()
teleFS := fs.NewTeleFS(s.logger)
tele := telemetry.NewTelemetry(true, false, teleFS, s.logger, "", nil)
tele.Ping(false)
ys := yaml.NewYamlStore(path, path, "", mockName, s.logger, tele)
Expand Down
2 changes: 1 addition & 1 deletion pkg/service/mocktest/mocktest.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ func NewMockTester(logger *zap.Logger) MockTester {
func (s *mockTester) MockTest(path string, proxyPort, pid uint32, mockName string) {

models.SetMode(models.MODE_TEST)
teleFS := fs.NewTeleFS()
teleFS := fs.NewTeleFS(s.logger)
tele := telemetry.NewTelemetry(true, false, teleFS, s.logger, "", nil)
tele.Ping(false)
ys := yaml.NewYamlStore(path, path, "", mockName, s.logger, tele)
Expand Down
2 changes: 1 addition & 1 deletion pkg/service/record/record.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ func (r *recorder) CaptureTraffic(path string, proxyPort uint32, appCmd, appCont

models.SetMode(models.MODE_RECORD)

teleFS := fs.NewTeleFS()
teleFS := fs.NewTeleFS(r.Logger)
tele := telemetry.NewTelemetry(true, false, teleFS, r.Logger, "", nil)
tele.Ping(false)

Expand Down
2 changes: 1 addition & 1 deletion pkg/service/serve/graph/schema.resolvers.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pkg/service/serve/serve.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ func (s *server) Serve(path string, proxyPort uint32, testReportPath string, Del
models.SetMode(models.MODE_TEST)
tester := test.NewTester(s.logger)
testReportFS := yaml.NewTestReportFS(s.logger)
teleFS := fs.NewTeleFS()
teleFS := fs.NewTeleFS(s.logger)
tele := telemetry.NewTelemetry(true, false, teleFS, s.logger, "", nil)
tele.Ping(false)
ys := yaml.NewYamlStore("", "", "", "", s.logger, tele)
Expand Down
2 changes: 1 addition & 1 deletion pkg/service/test/test.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ func (t *tester) InitialiseTest(cfg *TestConfig) (InitialiseTestReturn, error) {

models.SetMode(models.MODE_TEST)

teleFS := fs.NewTeleFS()
teleFS := fs.NewTeleFS(t.logger)
tele := telemetry.NewTelemetry(true, false, teleFS, t.logger, "", nil)

returnVal.TestReportFS = yaml.NewTestReportFS(t.logger)
Expand Down
10 changes: 6 additions & 4 deletions utils/utils.go
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
package utils

import (
"bufio"
"errors"
"fmt"
"io/ioutil"
"os"
"time"
"bufio"
"strings"
"time"


"github.com/cloudflare/cfssl/log"
sentry "github.com/getsentry/sentry-go"
)

var Emoji = "\U0001F430" + " Keploy:"

// askForConfirmation asks the user for confirmation. A user must type in "yes" or "no" and
// then press enter. It has fuzzy matching, so "y", "Y", "yes", "YES", and "Yes" all count as
// confirmations. If the input is not recognized, it will ask again. The function does not return
Expand Down Expand Up @@ -47,7 +49,6 @@ func CheckFileExists(path string) bool {

var KeployVersion string


func attachLogFileToSentry(logFilePath string) {
file, err := os.Open(logFilePath)
if err != nil {
Expand All @@ -68,6 +69,7 @@ func HandlePanic() {
if r := recover(); r != nil {
attachLogFileToSentry("./keploy-logs.txt")
sentry.CaptureException(errors.New(fmt.Sprint(r)))
log.Error(Emoji+"Recovered from:", r)
sentry.Flush(time.Second * 2)
}
}

0 comments on commit aaf3ba3

Please sign in to comment.