Goedgekeurd: Fortect
De afgelopen dagen hebben sommige van onze lezers geleerd hoe ik het gedrag van een project tijdens runtime kan veranderen.
Vanuit het oogpunt van schaalvergroting is de uitdaging om de protocollagen van geval tot geval met succes te differentiëren. Om alle onderwaterstenen te vermijden, zijn alleen de volgende items nodig:
- Dynamisch het logniveau wijzigen tijdens het opnieuw afspelen zonder de softwaretoepassing opnieuw te starten.
- Logboekinformatie doorgeven via wijzigingen bij applicatie-instanties.
Logging-frameworks hebben de afgelopen 5 jaar veel veranderingen ondergaan en we gaan kijken hoe dit nuttig kan zijn. Aangezien elk individu overstapt naar een microservices-architectuur, houden we er inderdaad onvermijdelijk aan vast en zal het volledig gebruik maken van Spring Boot, sl4j en Logback als de afstandsstapel.
Dit zijn de opties die normaal gesproken beschikbaar zouden kunnen zijn. Het gebruik is niet alleen beperkt tot de positieve architectuur van microservices, maar kan ook gebruikt worden in andere architectuurstijlen als we gewoonlijk sl4j en Logback gebruiken.
Optie één: gebruik een Spring Boot Admin
Kunnen we het logniveau tijdens runtime wijzigen?
Zoals beschreven in Aaron’s Day, kun je de registratiefase programmatisch inpakken. U kunt het in uw prachtige applicatie implementeren, houd er rekening mee dat u het wilt. Voor het model heeft u mogelijk een grafische interface waar de specifieke gebruiker en beheerder het logniveau wijzigen en op sommige loggers eenvoudig de methode setLevel () aanroepen.
Dit is de belangrijkste optie en wordt door de overgrote meerderheid aanbevolen als je Spring Boot gebruikt omdat het niet langer alles bevat. Met deze mogelijkheid moet deze applicatie een zomerrit bevatten en vervolgens worden geregistreerd bij de Spring Boot Admin.
De gebruiker gebruikt de admin-gebruikersinterfacea Spring Footwear-strator als een manier om het mobiele protocol te wijzigen.
Selecteer gewoon uw huidige logger en verander de hoeveelheid hout met één klik op de belangrijke plaats. Zoals te zien is in de afbeelding, verandert dit de logboekregistratie op alle sample-instanties, wat u niet zou moeten doen.
Als Spring Boots Admin nieuw voor u is, vindt u hier details. U kunt gemakkelijk alle werkende code vinden.
Optie 2: Scan Logback.xml
U kunt de automatische controle en update van de handtekeninginstelling instellen via logback.xml
Als u de documentniveaus in het logback.File-XML-bestand wijzigt, worden wijzigingen na twaalf slechts in sommige gevallen van kracht. Volg de volgende architectuur om wijzigingen op protocolniveau één keer door te voeren naar alle instanties van de houder:
Dit is normaal gesproken de plaats waar u dit logback.xml-bestand exporteert en of het beschikbaar is voor alle containers via het NFS-koppelpunt. Geef het nieuwe pad naar mijn logbestand door aan de container met behulp van het JVM-argument: -Dlogging â € .config = per logpath / logback.xml “.
Optie -3: toegang afsluiten via XML-URL
In deze parameter moet u een URL с logback opgeven. door xml met behulp van nginx / apache / HAProxy etc. en misbruik van logback.xml via JVM: “-Dlogging.config impliceert http: // host: 9999 /logback.xml” Sorry als de klant logback.xml vrijmaakt na de url, automatische parsering start zeker niet. Om dit te doen, hebben we zeker een stemmechanisme.
Optie 4: maak een API om de logniveaus te wijzigen
Een andere optie is programmatisch de hoeveelheid changelog te bekijken door naar de API te kijken.
Om overgangen op logniveau naar instanties door te sturen, moeten we een van de volgende methoden gebruiken:
Goedgekeurd: Fortect
Fortect is 's werelds meest populaire en effectieve pc-reparatietool. Miljoenen mensen vertrouwen erop dat hun systemen snel, soepel en foutloos blijven werken. Met zijn eenvoudige gebruikersinterface en krachtige scanengine kan Fortect snel een breed scala aan Windows-problemen vinden en oplossen - van systeeminstabiliteit en beveiligingsproblemen tot geheugenbeheer en prestatieproblemen.
We hebben een speciaal hulpprogramma nodig dat zorgt voor een API om het logniveau te wijzigen. Electric haalt het IP-adres van het (de) moment(en) op en doet ook een API-aanroep voor alle bijbehorende APP-instanties.
Optie 5: Pub / Sub
Als u “Alle” selecteert, moet momenteel de toepassingsinstantie worden geregistreerd in het identificatielogboek, dat de niveauschommelingen registreert.
Dit wordt naar mijn mening over-engineering genoemd als je gewoon wilt profiteren van wijzigingen op logniveau. Het zou echter een zeer efficiënte microservice-architectuur moeten zijn als u deze protocolfasen van alle toepassingen in één wilt veranderen.
Conclusie
Hoe ga je veranderen het logniveau in Logback door naar runtime te gaan?
Voer ChangeLogLevelDemo uit vanuit de Java-toepassing.Voer het ERROR-niveau in.Kijk hoe elke console berichten afdrukt.Herhaal stap 2 en 3 of meer voor andere loggerniveaus – DEBUG, WARN, TRACE.Vernieuw uw verbinding.Wacht 10 seconden.
Er zijn eigenlijk extra manieren om de protocolconstructie te leveren en te downloaden via FTP, Socket, enz. Sommige benaderingen komen echter op hetzelfde neer. De keuze van de methode hangt volledig af van de implementatietopologie, de stijl van de applicatiearchitectuur en nog veel meer.
Bovenstaande zijn de benaderingen, maar goedkeuring van de logconfiguratie en het monitoren van wijzigingen kan meestal geen blogonderwerp zijn. Ik denk dat uw organisatie voor uw omgeving zal zorgen.
Ik hoop dat je geniet van dit bericht. Kies gerust op de “Genieten”-knop.
Hoe verander je het logniveau dat verschijnt in Logback tijdens runtime?
Voer ChangeLogLevelDemo uit als Java-toepassing.Voer al deze ERROR-niveaus in.Merk op hoe de console meestal berichten veroorzaakt.Herhaal stap 2 en 3 voor andere loggersommen – DEBUG, WARN, TRACE.Vernieuw uw verbinding.Wacht tien seconden.
Logboeken zijn erg belangrijk voor het opsporen van fouten in elke smartphone-applicatie. Logboeken zijn het eerste en vaak laatste hulpmiddel dat beschikbaar is om de oorzaak van een probleem te identificeren.
Kunnen ze het logboek wijzigen niveau tijdens runtime?
Net als Aaron kan iemand het logniveau meestal programmatisch instellen. U kunt het in uw verzoek opnemen als eigenaren dat willen. U kunt bijvoorbeeld een visuele interface hebben waar een gebruiker of soms een directeur het logniveau wijzigt of vervolgens een bepaalde setLevel ()-methoden op de logger aanroept.
In deze ene blog zal ik niet beschrijven wat ik moet opsommen, maar hoe ik efficiënt inlog. Maar ik kan wel kijken naar het kritische aspect dat de belangrijkste dagboeklagen werkelijk zijn. Iedereen in de vestiging, of het nu gaat om productie / kwaliteitscontrole / vorming, heeft een reeks gedecentraliseerde protocolniveaus. In een culturele omgeving is niveauregistratie strak georganiseerd om ervoor te zorgen dat de grootte van het signaalbestand echt minimaal is.
Elke gewone gelegenheid is anders, problemen met softwareontwikkeling zijn onvermijdelijk. Meestal ontstaat er een situatie waarin er nooit genoeg huidig brandhout wordt gekapt op een onvoldoende punt. Daarom moet u de logboekmarkeringen verhogen.
Bijna elke slecht ontworpen applicatie die specifieert om logbestanden in te sluiten (of in een goede JAR voor elke afbeelding) vereist dat alles gewoonlijk samen opnieuw wordt gemaakt, zodat het enige dat u kunt doen de logniveaus wijzigen. Applicatieprotocolvorming wordt door middel van design goed uitbesteed. Om echter alleen de uitvoering van het protocol te verplaatsen, moet de toepassing uiteindelijk opnieuw worden gestart.
Hoe wijzig ik het logniveau in runtime van de lente-sneaker?
Optie 0: de Spring Boot Administrator gebruiken In onze geweldige optie moet uw toepassing deze veerbelaste actuator activeren en kopen met Spring Boot Admin. De gebruiker gebruikt de beheerdersinterface van Spring Boot om de logniveaus te wijzigen. Selecteer gewoon een logger en wijzig de logkwaliteit met een druk op de knop.
ontwikkeling, architectuur, registratie
Versnel de prestaties van uw computer nu met deze eenvoudige download.Hoe verander je het opnameniveau ?
Voer de volgende opdracht in om logboekregistratie voor foutopsporing in te schakelen: – subsystem = logging / root-logger = ROOT: change-root-log-level (level = DEBUG)Voer het volgende commando uit op televisie, schakel debug-logging uit: / subsystem = logging voor elke root-logger = ROOT: change-root-log-level (level = INFO)
Hoe verander je het hele logboek niveau in log4j2 tijdens runtime?
Als u het rootlogger-niveau wilt wijzigen, begin dan met zoiets als dit: LoggerContext ctx = (LoggerContext) LogManager. getContext (false); Configuratieconfiguratie = ctx. getConfiguration (); LoggerConfig loggerConfig is hetzelfde als config.