@@ -49,6 +49,17 @@ type TraefikConfig struct {
4949 } `yaml:"udp,omitempty"`
5050}
5151
52+ // Add this simple helper function at the top of config_generator.go
53+ func shouldLog () bool {
54+ logLevel := strings .ToLower (os .Getenv ("LOG_LEVEL" ))
55+ return logLevel == "debug" || logLevel == "" // Only log in debug mode or if not set
56+ }
57+
58+ func shouldLogInfo () bool {
59+ logLevel := strings .ToLower (os .Getenv ("LOG_LEVEL" ))
60+ return logLevel == "debug" || logLevel == "info" || logLevel == ""
61+ }
62+
5263// NewConfigGenerator creates a new config generator
5364func NewConfigGenerator (db * database.DB , confDir string , configManager * ConfigManager ) * ConfigGenerator {
5465 return & ConfigGenerator {
@@ -147,7 +158,9 @@ func (cg *ConfigGenerator) generateConfigWithRetry() error {
147158
148159// generateConfig generates Traefik configuration files
149160func (cg * ConfigGenerator ) generateConfig () error {
150- log .Println ("Generating Traefik configuration..." )
161+ if shouldLog () {
162+ log .Println ("Generating Traefik configuration..." )
163+ }
151164
152165 config := TraefikConfig {}
153166 config .HTTP .Middlewares = make (map [string ]interface {})
@@ -184,36 +197,47 @@ func (cg *ConfigGenerator) generateConfig() error {
184197 return fmt .Errorf ("failed to marshal YAML node: %w" , err )
185198 }
186199
187- if cg .hasConfigurationChanged (yamlData ) {
188- if err := cg .writeConfigToFile (yamlData ); err != nil {
189- return fmt .Errorf ("failed to write config to file: %w" , err )
190- }
191- log .Printf ("Generated new Traefik configuration at %s" , filepath .Join (cg .confDir , "resource-overrides.yml" ))
192- } else {
193- log .Println ("Configuration unchanged, skipping file write" )
194- }
200+ if cg .hasConfigurationChanged (yamlData ) {
201+ if err := cg .writeConfigToFile (yamlData ); err != nil {
202+ return fmt .Errorf ("failed to write config to file: %w" , err )
203+ }
204+ // Keep this - user wants to know when config actually changes
205+ log .Printf ("Generated new Traefik configuration at %s" , filepath .Join (cg .confDir , "resource-overrides.yml" ))
206+ } else {
207+ // REPLACE: log.Println("Configuration unchanged, skipping file write")
208+ if shouldLog () {
209+ log .Println ("Configuration unchanged, skipping file write" )
210+ }
211+ }
195212
196- return nil
213+ return nil
197214}
198215
216+
199217func (cg * ConfigGenerator ) processMiddlewares (config * TraefikConfig ) error {
200218 rows , err := cg .db .Query ("SELECT id, name, type, config FROM middlewares" )
201219 if err != nil {
202220 return fmt .Errorf ("failed to fetch middlewares: %w" , err )
203221 }
204222 defer rows .Close ()
205223
206- for rows .Next () {
207- var id , name , typ , configStr string
208- if err := rows .Scan (& id , & name , & typ , & configStr ); err != nil {
209- log .Printf ("Failed to scan middleware: %v" , err )
210- continue
211- }
212- var middlewareConfig map [string ]interface {}
213- if err := json .Unmarshal ([]byte (configStr ), & middlewareConfig ); err != nil {
214- log .Printf ("Failed to parse middleware config for %s: %v" , name , err )
215- continue
216- }
224+ for rows .Next () {
225+ var id , name , typ , configStr string
226+ if err := rows .Scan (& id , & name , & typ , & configStr ); err != nil {
227+ // REPLACE: log.Printf("Failed to scan middleware: %v", err)
228+ if shouldLog () {
229+ log .Printf ("Failed to scan middleware: %v" , err )
230+ }
231+ continue
232+ }
233+ var middlewareConfig map [string ]interface {}
234+ if err := json .Unmarshal ([]byte (configStr ), & middlewareConfig ); err != nil {
235+ // REPLACE: log.Printf("Failed to parse middleware config for %s: %v", name, err)
236+ if shouldLog () {
237+ log .Printf ("Failed to parse middleware config for %s: %v" , name , err )
238+ }
239+ continue
240+ }
217241
218242 // Use the centralized processing logic from models package
219243 middlewareConfig = models .ProcessMiddlewareConfig (typ , middlewareConfig )
@@ -226,23 +250,29 @@ func (cg *ConfigGenerator) processMiddlewares(config *TraefikConfig) error {
226250}
227251
228252func (cg * ConfigGenerator ) processServices (config * TraefikConfig ) error {
229- rows , err := cg .db .Query ("SELECT id, name, type, config FROM services" )
230- if err != nil {
231- return fmt .Errorf ("failed to fetch services: %w" , err )
232- }
233- defer rows .Close ()
253+ rows , err := cg .db .Query ("SELECT id, name, type, config FROM services" )
254+ if err != nil {
255+ return fmt .Errorf ("failed to fetch services: %w" , err )
256+ }
257+ defer rows .Close ()
234258
235- for rows .Next () {
236- var id , name , typ , configStr string
237- if err := rows .Scan (& id , & name , & typ , & configStr ); err != nil {
238- log .Printf ("Failed to scan service row: %v" , err )
239- continue
240- }
241- var serviceConfig map [string ]interface {}
242- if err := json .Unmarshal ([]byte (configStr ), & serviceConfig ); err != nil {
243- log .Printf ("Failed to parse service config for %s: %v" , name , err )
244- continue
245- }
259+ for rows .Next () {
260+ var id , name , typ , configStr string
261+ if err := rows .Scan (& id , & name , & typ , & configStr ); err != nil {
262+ // REPLACE: log.Printf("Failed to scan service row: %v", err)
263+ if shouldLog () {
264+ log .Printf ("Failed to scan service row: %v" , err )
265+ }
266+ continue
267+ }
268+ var serviceConfig map [string ]interface {}
269+ if err := json .Unmarshal ([]byte (configStr ), & serviceConfig ); err != nil {
270+ // REPLACE: log.Printf("Failed to parse service config for %s: %v", name, err)
271+ if shouldLog () {
272+ log .Printf ("Failed to parse service config for %s: %v" , name , err )
273+ }
274+ continue
275+ }
246276
247277 // Use the centralized processing logic from models package
248278 serviceConfig = models .ProcessServiceConfig (typ , serviceConfig )
@@ -278,7 +308,9 @@ func extractBaseName(id string) string {
278308func (cg * ConfigGenerator ) processResourcesWithServices (config * TraefikConfig ) error {
279309 activeDSConfig , err := cg .configManager .GetActiveDataSourceConfig ()
280310 if err != nil {
281- log .Printf ("Warning: Could not get active data source config in ConfigGenerator: %v. Defaulting to Pangolin logic." , err )
311+ if shouldLog () {
312+ log .Printf ("Warning: Could not get active data source config in ConfigGenerator: %v. Defaulting to Pangolin logic." , err )
313+ }
282314 activeDSConfig .Type = models .PangolinAPI
283315 }
284316
0 commit comments