Skip to content

Commit 5dfefcb

Browse files
qfrankilmotta
authored andcommitted
fix_: set log level for mobile release build won't generate log file
1 parent eaf937a commit 5dfefcb

4 files changed

+76
-0
lines changed

nodecfg/node_config.go

+5
Original file line numberDiff line numberDiff line change
@@ -791,6 +791,11 @@ func SetLogLevel(db *sql.DB, logLevel string) error {
791791
return err
792792
}
793793

794+
func SetLogEnabled(db *sql.DB, enabled bool) error {
795+
_, err := db.Exec(`UPDATE log_config SET enabled = ?`, enabled)
796+
return err
797+
}
798+
794799
func SetLogNamespaces(db *sql.DB, logNamespaces string) error {
795800
_, err := db.Exec(`UPDATE log_config SET log_namespaces = ?`, logNamespaces)
796801
return err

protocol/messenger_sync_settings.go

+27
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
gocommon "github.com/status-im/status-go/common"
1010
"github.com/status-im/status-go/multiaccounts/errors"
1111
"github.com/status-im/status-go/multiaccounts/settings"
12+
"github.com/status-im/status-go/nodecfg"
1213
"github.com/status-im/status-go/protocol/common"
1314
"github.com/status-im/status-go/protocol/protobuf"
1415
)
@@ -166,6 +167,7 @@ func (m *Messenger) startSettingsChangesLoop() {
166167
channel := m.settings.SubscribeToChanges()
167168
go func() {
168169
defer gocommon.LogOnPanic()
170+
logger := m.logger.Named("SettingsChangesLoop")
169171
for {
170172
select {
171173
case s := <-channel:
@@ -179,10 +181,35 @@ func (m *Messenger) startSettingsChangesLoop() {
179181
case settings.Bio.GetReactName():
180182
m.selfContact.Bio = s.Value.(string)
181183
m.publishSelfContactSubscriptions(&SelfContactChangeEvent{BioChanged: true})
184+
case settings.LogLevel.GetReactName():
185+
level := s.Value.(string)
186+
m.updateLogConfig(level, logger)
182187
}
183188
case <-m.quit:
184189
return
185190
}
186191
}
187192
}()
188193
}
194+
195+
func (m *Messenger) updateLogConfig(level string, logger *zap.Logger) {
196+
m.setLogLevel(level, logger)
197+
m.setLogEnabled(level != "", logger)
198+
}
199+
200+
func (m *Messenger) setLogLevel(level string, logger *zap.Logger) {
201+
if level == "" {
202+
return
203+
}
204+
err := nodecfg.SetLogLevel(m.database, level)
205+
if err != nil {
206+
logger.Error("nodecfg.SetLogLevel", zap.Error(err))
207+
}
208+
}
209+
210+
func (m *Messenger) setLogEnabled(logEnabled bool, logger *zap.Logger) {
211+
err := nodecfg.SetLogEnabled(m.database, logEnabled)
212+
if err != nil {
213+
logger.Error("nodecfg.SetLogEnabled", zap.Error(err))
214+
}
215+
}

protocol/messenger_sync_settings_test.go

+29
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
gethbridge "github.com/status-im/status-go/eth-node/bridge/geth"
1212
"github.com/status-im/status-go/eth-node/types"
1313
"github.com/status-im/status-go/multiaccounts/settings"
14+
"github.com/status-im/status-go/nodecfg"
1415
"github.com/status-im/status-go/params"
1516
"github.com/status-im/status-go/protocol/encryption/multidevice"
1617
"github.com/status-im/status-go/protocol/tt"
@@ -311,3 +312,31 @@ func (s *MessengerSyncSettingsSuite) TestSyncSettings_PreferredName() {
311312
s.Require().NoError(err)
312313
s.Require().Equal(pf2, opn)
313314
}
315+
316+
func (s *MessengerSyncSettingsSuite) TestUpdateLogConfig() {
317+
// ensure log level is empty and log is disabled before the test
318+
cfg, err := nodecfg.GetNodeConfigFromDB(s.alice.database)
319+
s.Require().NoError(err)
320+
s.Require().Equal(cfg.LogLevel, "")
321+
s.Require().False(cfg.LogEnabled)
322+
323+
// case 1
324+
// WHEN
325+
expectedLogLevel := "debug"
326+
s.alice.updateLogConfig(expectedLogLevel, s.logger)
327+
// THEN
328+
cfg, err = nodecfg.GetNodeConfigFromDB(s.alice.database)
329+
s.Require().NoError(err)
330+
s.Require().Equal(expectedLogLevel, cfg.LogLevel)
331+
s.Require().True(cfg.LogEnabled)
332+
333+
// case 2
334+
// empty log level should disable logging, but keep the log level
335+
// WHEN
336+
s.alice.updateLogConfig("", s.logger)
337+
// THEN
338+
cfg, err = nodecfg.GetNodeConfigFromDB(s.alice.database)
339+
s.Require().NoError(err)
340+
s.Require().Equal(expectedLogLevel, cfg.LogLevel)
341+
s.Require().False(cfg.LogEnabled)
342+
}

protocol/node_config_persistence_test.go

+15
Original file line numberDiff line numberDiff line change
@@ -92,3 +92,18 @@ func (s *NodeConfigPersistenceTestSuite) Test_SetLogLevelDebug() {
9292
s.Require().NoError(err)
9393
s.Require().Equal("DEBUG", dbNodeConfig.LogLevel)
9494
}
95+
96+
func (s *NodeConfigPersistenceTestSuite) Test_SetLogEnabled() {
97+
dbNodeConfig, err := nodecfg.GetNodeConfigFromDB(s.db)
98+
s.Require().NoError(err)
99+
s.Require().False(dbNodeConfig.LogEnabled)
100+
101+
// WHEN
102+
err = nodecfg.SetLogEnabled(s.db, true)
103+
s.Require().NoError(err)
104+
105+
// THEN
106+
dbNodeConfig, err = nodecfg.GetNodeConfigFromDB(s.db)
107+
s.Require().NoError(err)
108+
s.Require().True(dbNodeConfig.LogEnabled)
109+
}

0 commit comments

Comments
 (0)