patron v0.46.0 Release Notes

Release Date: 2020-10-23 // over 3 years ago
    • ๐Ÿ”ฆ Expose logger interface to Patron Service (#259)

    As requested we exposed the logger interface to the Patron service so you can plug-in you own logger.
    ๐Ÿ— We have also introduced a textual logger based on the standard Go package logger which can be used when constructing the service builder.
    Example 3 shows hot to use the new text logger and show also the breaking change fix.
    Before we did setup the framework in this way:

    err := patron.SetupLogging(name, version)if err != nil { fmt.Printf("failed to set up logging: %v", err) os.Exit(1) }kafkaCmp, err := newKafkaComponent(name, kafkaBroker, kafkaTopic, kafkaGroup, amqpURL, amqpExchange)if err != nil { log.Fatalf("failed to create processor %v", err) }err = patron.New(name, version).WithComponents(kafkaCmp.cmp).Run(context.Background())if err != nil { log.Fatalf("failed to create and run service %v", err) }
    

    ๐Ÿ— Now we create the service builder with the constructor:

    service, err := patron.New(name, version, patron.TextLogger())if err != nil { fmt.Printf("failed to set up service: %v", err) os.Exit(1) }kafkaCmp, err := newKafkaComponent(name, kafkaBroker, kafkaTopic, kafkaGroup, amqpURL, amqpExchange)if err != nil { log.Fatalf("failed to create processor %v", err) }err = service.WithComponents(kafkaCmp.cmp).Run(context.Background())if err != nil { log.Fatalf("failed to create and run service %v", err) }
    

    0๏ธโƒฃ Keep in mind that if no logger is provided it will use the default structured logger:

    service, err := patron.New(name, version)if err != nil { fmt.Printf("failed to set up service: %v", err) os.Exit(1) }
    
    • ๐Ÿ”€ Sync goroutine assertion in component/http with caller test (#269)
    • ๐Ÿ“š Amend PR template documentation links (#268)