All Projects → quarkiverse → quarkus-logging-manager

quarkiverse / quarkus-logging-manager

Licence: Apache-2.0 License
Quarkus extension that allows you to view the log online and change log levels using a UI

Programming Languages

java
68154 projects - #9 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to quarkus-logging-manager

quarkus-github-app
Develop your GitHub Apps in Java with Quarkus.
Stars: ✭ 28 (+12%)
Mutual labels:  quarkus-extension
quarkus-rabbitmq-client
Quarkus extension supporting RabbitMQ
Stars: ✭ 33 (+32%)
Mutual labels:  quarkus-extension
quarkus-resteasy-problem
Unified error responses for Quarkus REST APIs via Problem Details for HTTP APIs (RFC7807). Supports Quarkus 2.0+ and 1.4+
Stars: ✭ 36 (+44%)
Mutual labels:  quarkus-extension
quarkus-jberet
Quarkus Extension for Batch Applications.
Stars: ✭ 26 (+4%)
Mutual labels:  quarkus-extension
quarkus-google-cloud-services
Google Cloud Services Quarkus Extensions
Stars: ✭ 42 (+68%)
Mutual labels:  quarkus-extension
quarkus-freemarker
Quarkus Freemarker Extension
Stars: ✭ 13 (-48%)
Mutual labels:  quarkus-extension
quarkus-mybatis
Quarkus MyBatis Extension
Stars: ✭ 45 (+80%)
Mutual labels:  quarkus-extension

Logging Manager Extension

Maven Central All Contributors

The Quarkus Logging Manager Extension provides you endpoints to visualize and manage the log level of your loggers.

Endpoint Http Method Description
/loggers GET Returns the list of all loggers, with information about the configured and effective level
/loggers?loggerName={loggerName} GET Returns the logger specified by this name, with information about the configured and effective level
/loggers POST Changes the log level of the specified logger
/loggers/levels GET Get all the available level

Security

Security of endpoints is important and we do not want to allow unknown people to know (or worse, change!) the log levels of our applications. Fortunately we can secure our endpoints using Quarkus' default security mechanism, as described in here. All you have to do is define your application.properties similar to this:

quarkus.http.auth.basic=true # If you want basic auth. Multiple auth mechanism are supported

quarkus.http.auth.policy.admin-access.roles-allowed=admin
quarkus.http.auth.permission.roles1.paths=/loggers
quarkus.http.auth.permission.roles1.policy=admin-access

And, in case you chose Basic Auth, provide a IdentityProvider (either by implementing one or adding an extension that provides one). Quarkus will take care of matching the paths (in this case /loggers to the policy you defined and granting or denying access). Then you can also secure all the endpoints in your application using this configuration.

Example:

To use this in your application, simply add this in your pom.xml:

    <dependency>
        <groupId>io.quarkiverse.loggingmanager</groupId>
        <artifactId>quarkus-logging-manager</artifactId>
        <version>${logger-manager.version}</version>
        <scope>runtime</scope>
    </dependency>

Note: Replace ${logger-manager.version} with the latest version

Then browse to http://localhost:8080/q/logging-manager-ui/

logger_manager_log_screenshot

OpenAPI

You can include the Logger Manager API in the OpenAPI document (and thus also Swagger UI). This needs to be enabled via config:

quarkus.logging-manager.openapi.included=true

This will then add the following to your OpenAPI:

swagger_manager screenshot

Roadmap

  • Add online log viewer option
  • Graphical UI to read logger level
  • OpenApiSpec for the endpoints
  • Make endpoint configurable
  • Enable customizable security on the endpoint (see readme file)

Contributors

Thanks goes to these wonderful people (emoji key):


oscarfh

💻 🚧

Phillip Krüger

💻 🚧

This project follows the all-contributors specification. Contributions of any kind welcome!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].