Rotace logů v Tomcat 8

MP

Rotace logů v Tomcat 8
« kdy: 23. 05. 2016, 11:16:58 »
Zdravim,

mam aplikaci v tomcat8, ktera generuje jmeno logu v tomto formatu:
app.log.2016-03-10

Tomcat vicemene vubec neznam, nevite nekdo, jak zajistit rotaci logu? Ty manualy pro tomcat jsou pro me trochu spanelska vesnice. Je tohle neco, co se da nastavit v aplikaci od vyvojaru, nebo je to nutne nastavit v tomcatu? Momentalne pouzivam toto:

Kód: [Vybrat]
/var/log/tomcat8/app.log.* {
  copytruncate
  daily
  rotate 30
  compress
  missingok
  create 644 tomcat8 tomcat8
}

Ale timto vznika toto:

Kód: [Vybrat]
-rw-r--r--  1 tomcat8 tomcat8        0 May 23 06:49 app.log.2016-03-10.1.gz.1.gz.1.gz.2.gz
-rw-r--r--  1 tomcat8 tomcat8        0 May 23 06:49 app.log.2016-03-10.1.gz.1.gz.1.gz.2.gz.1.gz
-rw-r--r--  1 tomcat8 tomcat8        0 May 23 06:49 app.log.2016-03-10.1.gz.1.gz.1.gz.2.gz.1.gz.1.gz
-rw-r--r--  1 tomcat8 tomcat8        0 May 23 06:49 app.log.2016-03-10.1.gz.1.gz.1.gz.2.gz.1.gz.1.gz.1.gz
-rw-r--r--  1 tomcat8 tomcat8        0 May 23 06:49 app.log.2016-03-10.1.gz.1.gz.1.gz.2.gz.1.gz.1.gz.1.gz.1.gz
-rw-r--r--  1 tomcat8 tomcat8        0 May 23 06:49 app.log.2016-03-10.1.gz.1.gz.1.gz.2.gz.1.gz.1.gz.1.gz.1.gz.1.gz

Jaky je obecne nejlepsi postup u tomcatu k zajisteni rotace logu s omezenym poctem? Variante s find v crontabu bych se chtel vyhnout.
« Poslední změna: 23. 05. 2016, 11:32:21 od Petr Krčmář »


podlesh

Re:Rotace logů v Tomcat 8
« Odpověď #1 kdy: 23. 05. 2016, 11:37:47 »
Určitě se obrať na vývojáře, protože s velmi vysokou pravděpodobností logují přímo z aplikace a ne přes tomcat (tj. v aplikaci mají knihovnu která rovnou zapisuje do souboru, to je běžná praxe). Takže ať to překonfigurují, případně ať někde dají možnost načíst změněnou konfiguraci z disku.

Re:Rotace logů v Tomcat 8
« Odpověď #2 kdy: 23. 05. 2016, 19:12:52 »
Záleží trochu na verzi Tomcata. Je snaha podporovat různé logovací backendy, takže je možné centrální nastavení v Tomcatu, i když aplikace v Tomcatu používají různé knihovny pro logování. Pak lze nastavit aby logy rotovaly bez nutnotsti používat systémový logrotate.

Takže podle mě se zeptat se vývojářů, jakou používají pro logování implementaci - zda je podporovaná ze strany Apache Commons Logging. Dále zkontrolovat, zda nemají vlastní nastavení pro tuto implementaci přibalené přímo v aplikaci. To by mít neměli, aby se mohla uplatit centrální konfigurace v Tomcatu. Pak by mělo stačit už jen nastavit logování v Tomcatovi centrálně.

https://wiki.apache.org/tomcat/FAQ/Logging
http://blog.kchandrahasa.com/blog/2013/07/16/configuring-tomcat-catalina-log-rotation/

Je to trochu nepřehledné, nejlépe aby to nastavil někdo, kdo to už dělal a zná různá zákoutí...

Modry krecek

Re:Rotace logů v Tomcat 8
« Odpověď #3 kdy: 23. 05. 2016, 21:50:42 »
Zkus se podivat, zda nekde v deploynute aplikaci v adresari 'webapps' neni soubor log4j.properties nebo neco takoveho. Vetsina JAVA aplikaci vyuziva log4j knihovnu. Pres tento soubor by se mela dat nakonfigurovat rotace logu, uroven logovani v aplikaci apod. Tomcat prilis uroven logovani aplikace neovlivnuje. Jak napsali vyse, je to spise na vyvojarich, jak si logovani naprogramovali.

Re:Rotace logů v Tomcat 8
« Odpověď #4 kdy: 23. 05. 2016, 23:08:38 »
Není pravda, že by log4j nějak převládal, je tu více srovnatelných systémů. Nastavení Tomcata neovlivňuje úroveň, s jakou se konkrétní hláška zaloguje, ale určuje, zda a kam se hláška uloží.