gwusermanual:log4j2_properties

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
gwusermanual:log4j2_properties [2022/11/14 10:12]
giorgio.scali [Note sulla configurazione log4j2]
gwusermanual:log4j2_properties [2023/08/30 16:02] (versione attuale)
giorgio.scali [Template log4j2.properties (Webadmin)]
Linea 2: Linea 2:
 Il file **log4j2.properties**,​ è utilizzato per configurare le modalità di logging in geoweb. Il file **log4j2.properties**,​ è utilizzato per configurare le modalità di logging in geoweb.
  
-Questa è la **versione 2** di [[https://​logging.apache.org/​log4j/​2.x/​index.html|log4j]],​ che è introdotta a partire dalla versione 4.6.X del framework.+Questa è la **versione 2** di [[https://​logging.apache.org/​log4j/​2.x/​index.html|log4j]],​ che è **introdotta a partire dalla versione 4.6.X** del framework.
  
 L'​introduzione è stata forzata in seguito alla scoperta di un rilevante bug di sicurezza. info [[https://​www.lffl.org/​2021/​12/​approfondimento-bug-log4shell-e-log4j.html|qui]]. Non sono affette dal bug le versioni 1.x di log4j, precedentemente utilizzate da Geoweb, ​ ma la richiesta di aggiornamento da parte di certi clienti è stata pressante, ed è statao deciso di passare comunque all'​ultima versione rilasciata. L'​introduzione è stata forzata in seguito alla scoperta di un rilevante bug di sicurezza. info [[https://​www.lffl.org/​2021/​12/​approfondimento-bug-log4shell-e-log4j.html|qui]]. Non sono affette dal bug le versioni 1.x di log4j, precedentemente utilizzate da Geoweb, ​ ma la richiesta di aggiornamento da parte di certi clienti è stata pressante, ed è statao deciso di passare comunque all'​ultima versione rilasciata.
Linea 43: Linea 43:
 property.activitiLogLevel = error property.activitiLogLevel = error
 property.mongodbLogLevel = error property.mongodbLogLevel = error
 +property.httpclientLogLevel = info
 ... ...
 </​code>​ </​code>​
 +  * il riferimento a variabili d'​ambiente va ora fatto usando il prefisso <code >​sys:</​code>,​ per esempio <code >​${sys:​catalina.home}</​code>​
   * le property contenenti <code properties>​appenders=</​code>​ e <code properties>​appenderRefs=</​code>​ sono opzionali e sono obbligatorie solo in caso di nomi con caratteri speciali degli appender. Sono volutamente lasciate per capire più facilmente le correlazioni fra i vari elementi della configurazione   * le property contenenti <code properties>​appenders=</​code>​ e <code properties>​appenderRefs=</​code>​ sono opzionali e sono obbligatorie solo in caso di nomi con caratteri speciali degli appender. Sono volutamente lasciate per capire più facilmente le correlazioni fra i vari elementi della configurazione
   * per ogni **logger** va fatta una riga separata per ogni **appender** che si intende collegare ad esso   * per ogni **logger** va fatta una riga separata per ogni **appender** che si intende collegare ad esso
   * inoltre valgono in generale le seguenti correlazioni determinate dai colori:   * inoltre valgono in generale le seguenti correlazioni determinate dai colori:
  
-<​code></​code>​ +
-<​html>​ +
-<div>+
 ######################################################################​ ######################################################################​
 +
 # geoweb logger # geoweb logger
 +
 ######################################################################​ ######################################################################​
 +
 logger.geoweb.name = com.geowebframework logger.geoweb.name = com.geowebframework
 +
 logger.geoweb.level = ${geowebLogLevel} logger.geoweb.level = ${geowebLogLevel}
 +
 logger.geoweb.additivity = false logger.geoweb.additivity = false
 +
 logger.geoweb.appenderRefs = <color #​ed1c24>​stdout</​color>,<​color #​ff7f27>​rolling</​color>​ logger.geoweb.appenderRefs = <color #​ed1c24>​stdout</​color>,<​color #​ff7f27>​rolling</​color>​
-logger.geoweb.appenderRef.<​color #​ed1c24>​stdout</​color>​.ref = STDOUT + 
-logger.geoweb.appenderRef.<​color #​ff7f27>​rolling</​color>​.ref = RollingFile+logger.geoweb.appenderRef.<​color #​ed1c24>​stdout</​color>​.ref = <color #33ff33>STDOUT</​color>​ 
 + 
 +logger.geoweb.appenderRef.<​color #​ff7f27>​rolling</​color>​.ref = <color #3333ff>RollingFile</​color>​ 
  
  
 ######################################################################​ ######################################################################​
 +
 # appenders # appenders
 +
 ######################################################################​ ######################################################################​
 +
 #appenders definition can be optional, but it's useful to undestand properties syntax correlation ​ #appenders definition can be optional, but it's useful to undestand properties syntax correlation ​
 +
 appenders = <color #​ffaec9>​console</​color>,<​color #​c8bfe7>​rolling</​color>​ appenders = <color #​ffaec9>​console</​color>,<​color #​c8bfe7>​rolling</​color>​
 +
  
 ######################################################################​ ######################################################################​
 +
 # STDOUT (Console) appender # STDOUT (Console) appender
 +
 ######################################################################​ ######################################################################​
 +
 appender.<​color #​ffaec9>​console</​color>​.type = Console appender.<​color #​ffaec9>​console</​color>​.type = Console
-appender.<​color #​ffaec9>​console</​color>​.name = STDOUT+ 
 +appender.<​color #​ffaec9>​console</​color>​.name = <color #33ff33>STDOUT</​color>​ 
 appender.<​color #​ffaec9>​console</​color>​.layout.type = PatternLayout appender.<​color #​ffaec9>​console</​color>​.layout.type = PatternLayout
 +
 appender.<​color #​ffaec9>​console</​color>​.layout.pattern = %d [%t] %-5p %c - %m%n appender.<​color #​ffaec9>​console</​color>​.layout.pattern = %d [%t] %-5p %c - %m%n
 +
 appender.<​color #​ffaec9>​console</​color>​.filter.threshold.type = ThresholdFilter appender.<​color #​ffaec9>​console</​color>​.filter.threshold.type = ThresholdFilter
 +
 appender.<​color #​ffaec9>​console</​color>​.filter.threshold.level = ${globalLogLevel} appender.<​color #​ffaec9>​console</​color>​.filter.threshold.level = ${globalLogLevel}
 +
  
 ######################################################################​ ######################################################################​
 +
 #​ RollingFile (RollingFile) appender #​ RollingFile (RollingFile) appender
 +
 ######################################################################​ ######################################################################​
 +
 appender.<​color #​c8bfe7>​rolling</​color>​.type = RollingFile appender.<​color #​c8bfe7>​rolling</​color>​.type = RollingFile
-appender.<​color #​c8bfe7>​rolling</​color>​.name = RollingFile+ 
 +appender.<​color #​c8bfe7>​rolling</​color>​.name = <color #3333ff>RollingFile</​color>​ 
 appender.<​color #​c8bfe7>​rolling</​color>​.fileName = ${sys:​catalina.home}/​logs/​geoweb_client.log appender.<​color #​c8bfe7>​rolling</​color>​.fileName = ${sys:​catalina.home}/​logs/​geoweb_client.log
-appender.<​color #​c8bfe7>​rolling</​color>​.filePattern = ${sys:​catalina.home}/​logs/​geoweb_client-%d{yyyy-MM-dd-HH-mm-ss}-%i.log+ 
 +#appender.<​color #​c8bfe7>​rolling</​color>​.filePattern = ${sys:​catalina.home}/​logs/​geoweb_client-%d{yyyy-MM-dd}-%i.log 
 + 
 +appender.<​color #​c8bfe7>​rolling</​color>​.filePattern = ${sys:​catalina.home}/​logs/​geoweb_client-%i.log 
 appender.<​color #​c8bfe7>​rolling</​color>​.layout.type = PatternLayout appender.<​color #​c8bfe7>​rolling</​color>​.layout.type = PatternLayout
 +
 appender.<​color #​c8bfe7>​rolling</​color>​.layout.pattern = %d [%t] %-5p %c - %m%n appender.<​color #​c8bfe7>​rolling</​color>​.layout.pattern = %d [%t] %-5p %c - %m%n
 +
 appender.<​color #​c8bfe7>​rolling</​color>​.policies.type = Policies appender.<​color #​c8bfe7>​rolling</​color>​.policies.type = Policies
-appender.<​color #​c8bfe7>​rolling</​color>​.policies.time.type = TimeBasedTriggeringPolicy + 
-appender.<​color #​c8bfe7>​rolling</​color>​.policies.time.interval = 86400 +#appender.<​color #​c8bfe7>​rolling</​color>​.policies.time.type = TimeBasedTriggeringPolicy 
-appender.<​color #​c8bfe7>​rolling</​color>​.policies.time.modulate = true+ 
 +#appender.<​color #​c8bfe7>​rolling</​color>​.policies.time.interval = 1 
 + 
 +#appender.<​color #​c8bfe7>​rolling</​color>​.policies.time.modulate = true 
 appender.<​color #​c8bfe7>​rolling</​color>​.policies.size.type = SizeBasedTriggeringPolicy appender.<​color #​c8bfe7>​rolling</​color>​.policies.size.type = SizeBasedTriggeringPolicy
 +
 appender.<​color #​c8bfe7>​rolling</​color>​.policies.size.size = 20MB appender.<​color #​c8bfe7>​rolling</​color>​.policies.size.size = 20MB
 +
 appender.<​color #​c8bfe7>​rolling</​color>​.strategy.type = DefaultRolloverStrategy appender.<​color #​c8bfe7>​rolling</​color>​.strategy.type = DefaultRolloverStrategy
 +
 appender.<​color #​c8bfe7>​rolling</​color>​.strategy.max = 10 appender.<​color #​c8bfe7>​rolling</​color>​.strategy.max = 10
 +
 appender.<​color #​c8bfe7>​rolling</​color>​.strategy.fileIndex = min appender.<​color #​c8bfe7>​rolling</​color>​.strategy.fileIndex = min
-</​div>​ +
-</​html>​+
  
  
  
 ===== Template log4j2.properties (Webclient) ===== ===== Template log4j2.properties (Webclient) =====
 +Nel caso si voglia usare anche la **TimeBasedTriggeringPolicy**,​ per far creare un nuovo file ogni giorno, oltre che superati i limiti di size:
 +  - Elenco numeratodecommentare (**togliendo #**) le parti //​appender.rolling.policies.time.//​
 +  - nel **filePattern** degli **appender** assicurarsi che ci sia un costrutto **%d{}** //(Es: %d{yyyy-MM-dd})// ​
 +
 +
 <code properties log4j2.properties>​ <code properties log4j2.properties>​
 # documentation here: # documentation here:
Linea 116: Linea 162:
 property.activitiLogLevel = error property.activitiLogLevel = error
 property.mongodbLogLevel = error property.mongodbLogLevel = error
 +property.httpclientLogLevel = info
  
 ######################################################################​ ######################################################################​
Linea 143: Linea 190:
 ######################################################################​ ######################################################################​
 rootLogger.level = ${globalLogLevel} rootLogger.level = ${globalLogLevel}
-rootLogger.appenderRefs = stdout+rootLogger.appenderRefs = stdout,rolling
 rootLogger.appenderRef.stdout.ref = STDOUT rootLogger.appenderRef.stdout.ref = STDOUT
 +rootLogger.appenderRef.rolling.ref = RollingFile
  
 ######################################################################​ ######################################################################​
Linea 159: Linea 207:
 # security logger # security logger
 ######################################################################​ ######################################################################​
-logger.security.name = com.geowebframework.webclient.security.LogFileLogger+logger.security.name = com.geowebframework.webclient.security
 logger.security.level = ${securityLogLevel} logger.security.level = ${securityLogLevel}
 logger.security.additivity = false logger.security.additivity = false
Linea 196: Linea 244:
 logger.mongodb.appenderRef.rolling.ref = RollingFile logger.mongodb.appenderRef.rolling.ref = RollingFile
  
 +######################################################################​ 
 +#​ httpclient logger 
 +######################################################################​ 
 +logger.httpclient.name=org.apache.http 
 +logger.httpclient.level = ${httpclientLogLevel} 
 +logger.httpclient.additivity = false 
 +logger.httpclient.appenderRefs = stdout,​rolling  
 +logger.httpclient.appenderRef.stdout.ref = STDOUT 
 +logger.httpclient.appenderRef.rolling.ref = RollingFile
  
 ######################################################################​ ######################################################################​
 # appenders # appenders
 ######################################################################​ ######################################################################​
-#appenders definition can be optional, but it's useful to undestand ​properties syntax correlation ​+#appenders definition can be optional, but it's useful to understand ​properties syntax correlation ​
 appenders = console,​rolling,​rollingEmail,​rollingAccess appenders = console,​rolling,​rollingEmail,​rollingAccess
  
Linea 220: Linea 276:
 appender.rolling.name = RollingFile appender.rolling.name = RollingFile
 appender.rolling.fileName = ${sys:​catalina.home}/​logs/​geoweb_client.log appender.rolling.fileName = ${sys:​catalina.home}/​logs/​geoweb_client.log
-appender.rolling.filePattern = ${sys:​catalina.home}/​logs/​geoweb_client-%d{yyyy-MM-dd-HH-mm-ss}-%i.log+#appender.rolling.filePattern = ${sys:​catalina.home}/​logs/​geoweb_client-%d{yyyy-MM-dd}-%i.log 
 +appender.rolling.filePattern = ${sys:​catalina.home}/​logs/​geoweb_client-%i.log
 appender.rolling.layout.type = PatternLayout appender.rolling.layout.type = PatternLayout
 appender.rolling.layout.pattern = %d [%t] %-5p %c - %m%n appender.rolling.layout.pattern = %d [%t] %-5p %c - %m%n
 appender.rolling.policies.type = Policies appender.rolling.policies.type = Policies
-appender.rolling.policies.time.type = TimeBasedTriggeringPolicy +#appender.rolling.policies.time.type = TimeBasedTriggeringPolicy 
-appender.rolling.policies.time.interval = 86400 +#appender.rolling.policies.time.interval = 1 
-appender.rolling.policies.time.modulate = true+#appender.rolling.policies.time.modulate = true
 appender.rolling.policies.size.type = SizeBasedTriggeringPolicy appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
 appender.rolling.policies.size.size = 20MB appender.rolling.policies.size.size = 20MB
Linea 239: Linea 296:
 appender.rollingEmail.name = RollingFileEmail appender.rollingEmail.name = RollingFileEmail
 appender.rollingEmail.fileName = ${sys:​catalina.home}/​logs/​gwMail.log appender.rollingEmail.fileName = ${sys:​catalina.home}/​logs/​gwMail.log
-appender.rollingEmail.filePattern = ${sys:​catalina.home}/​logs/​gwMail-%d{MM-dd-yy-HH-mm-ss}-%i.log+#appender.rollingEmail.filePattern = ${sys:​catalina.home}/​logs/​gwMail-%d{yyyy-MM-dd}-%i.log 
 +appender.rollingEmail.filePattern = ${sys:​catalina.home}/​logs/​gwMail-%i.log
 appender.rollingEmail.layout.type = PatternLayout appender.rollingEmail.layout.type = PatternLayout
 appender.rollingEmail.layout.pattern = %d [%t] %-5p %c - %m%n appender.rollingEmail.layout.pattern = %d [%t] %-5p %c - %m%n
 appender.rollingEmail.policies.type = Policies appender.rollingEmail.policies.type = Policies
-appender.rollingEmail.policies.time.type = TimeBasedTriggeringPolicy +#appender.rollingEmail.policies.time.type = TimeBasedTriggeringPolicy 
-appender.rollingEmail.policies.time.interval = 86400 +#appender.rollingEmail.policies.time.interval = 1 
-appender.rollingEmail.policies.time.modulate = true+#appender.rollingEmail.policies.time.modulate = true
 appender.rollingEmail.policies.size.type = SizeBasedTriggeringPolicy appender.rollingEmail.policies.size.type = SizeBasedTriggeringPolicy
 appender.rollingEmail.policies.size.size = 20MB appender.rollingEmail.policies.size.size = 20MB
Linea 257: Linea 315:
 appender.rollingAccess.type = RollingFile appender.rollingAccess.type = RollingFile
 appender.rollingAccess.name = RollingFileAccess appender.rollingAccess.name = RollingFileAccess
-appender.rollingAccess.fileName = ${catalina.home}/​logs/​gwAccess.log +appender.rollingAccess.fileName = ${sys:catalina.home}/​logs/​gwAccess.log 
-appender.rollingAccess.filePattern = ${catalina.home}/​logs/​gwAccess-%d{MM-dd-yy-HH-mm-ss}-%i.log+#appender.rollingAccess.filePattern = ${sys:catalina.home}/​logs/​gwAccess-%d{yyyy-MM-dd}-%i.log 
 +appender.rollingAccess.filePattern = ${sys:​catalina.home}/​logs/​gwAccess-%i.log
 appender.rollingAccess.layout.type = PatternLayout appender.rollingAccess.layout.type = PatternLayout
 appender.rollingAccess.layout.pattern = %d [%t] %-5p %c - %m%n appender.rollingAccess.layout.pattern = %d [%t] %-5p %c - %m%n
 appender.rollingAccess.policies.type = Policies appender.rollingAccess.policies.type = Policies
-appender.rollingAccess.policies.time.type = TimeBasedTriggeringPolicy +#appender.rollingAccess.policies.time.type = TimeBasedTriggeringPolicy 
-appender.rollingAccess.policies.time.interval = 86400 +#appender.rollingAccess.policies.time.interval = 1 
-appender.rollingAccess.policies.time.modulate = true+#appender.rollingAccess.policies.time.modulate = true
 appender.rollingAccess.policies.size.type = SizeBasedTriggeringPolicy appender.rollingAccess.policies.size.type = SizeBasedTriggeringPolicy
 appender.rollingAccess.policies.size.size = 20MB appender.rollingAccess.policies.size.size = 20MB
Linea 274: Linea 333:
  
 ===== Template log4j2.properties (Webadmin) ===== ===== Template log4j2.properties (Webadmin) =====
 +
 +Nel caso si voglia usare anche la **TimeBasedTriggeringPolicy**,​ per far creare un nuovo file ogni giorno, oltre che superati i limiti di size:
 +  - Elenco numeratodecommentare (**togliendo #**) le parti //​appender.rolling.policies.time.//​
 +  - nel **filePattern** degli **appender** assicurarsi che ci sia un costrutto **%d{}** //(Es: %d{yyyy-MM-dd})// ​
 +
 <code properties log4j2.properties>​ <code properties log4j2.properties>​
 # documentation here: # documentation here:
Linea 311: Linea 375:
 ######################################################################​ ######################################################################​
 rootLogger.level = ${globalLogLevel} rootLogger.level = ${globalLogLevel}
-rootLogger.appenderRefs = stdout+rootLogger.appenderRefs = stdout,rolling
 rootLogger.appenderRef.stdout.ref = STDOUT rootLogger.appenderRef.stdout.ref = STDOUT
 +rootLogger.appenderRef.rolling.ref = RollingFile
  
 ######################################################################​ ######################################################################​
Linea 339: Linea 404:
 # appenders # appenders
 ######################################################################​ ######################################################################​
-#appenders definition can be optional, but it's useful to undestand ​properties syntax correlation ​+#appenders definition can be optional, but it's useful to understand ​properties syntax correlation ​
 appenders = console,​rolling appenders = console,​rolling
  
Linea 358: Linea 423:
 appender.rolling.name = RollingFile appender.rolling.name = RollingFile
 appender.rolling.fileName = ${sys:​catalina.home}/​logs/​geoweb_admin.log appender.rolling.fileName = ${sys:​catalina.home}/​logs/​geoweb_admin.log
-appender.rolling.filePattern = ${sys:​catalina.home}/​logs/​geoweb_admin-%d{yyyy-MM-dd-HH-mm-ss}-%i.log+#appender.rolling.filePattern = ${sys:​catalina.home}/​logs/​geoweb_admin-%d{yyyy-MM-dd}-%i.log 
 +appender.rolling.filePattern = ${sys:​catalina.home}/​logs/​geoweb_admin-%i.log
 appender.rolling.layout.type = PatternLayout appender.rolling.layout.type = PatternLayout
 appender.rolling.layout.pattern = %d [%t] %-5p %c - %m%n appender.rolling.layout.pattern = %d [%t] %-5p %c - %m%n
 appender.rolling.policies.type = Policies appender.rolling.policies.type = Policies
-appender.rolling.policies.time.type = TimeBasedTriggeringPolicy +#appender.rolling.policies.time.type = TimeBasedTriggeringPolicy 
-appender.rolling.policies.time.interval = 86400 +#appender.rolling.policies.time.interval = 1 
-appender.rolling.policies.time.modulate = true+#appender.rolling.policies.time.modulate = true
 appender.rolling.policies.size.type = SizeBasedTriggeringPolicy appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
-appender.rolling.policies.size.size=10MB+appender.rolling.policies.size.size = 20MB
 appender.rolling.strategy.type = DefaultRolloverStrategy appender.rolling.strategy.type = DefaultRolloverStrategy
 appender.rolling.strategy.max = 10 appender.rolling.strategy.max = 10
 appender.rolling.strategy.fileIndex = min appender.rolling.strategy.fileIndex = min
 +
 </​code>​ </​code>​
  
  • gwusermanual/log4j2_properties.1668417175.txt.gz
  • Ultima modifica: 2022/11/14 10:12
  • da giorgio.scali