Questa è una vecchia versione del documento!
Indice
Descrizione log applicativi di DocWay4, MSA e Equinotifier
Questo documento ha lo scopo di fornire alcune descrizioni relative alla lettura e analisi dei log prodotti dagli applicativi di 3D Informatica.
DocWay4
In DocWay la produzione dei log è affidata alla libreria di logging Apache log4j 1.2.
La configurazione di base prevede la produzione di log ciclici: docway4.log, docway4.log.1…docway4.log.<n> e docway4-service.log, docway4-service.log.1…docway4-service.log.<n>:
- docway4.log: si tratta dei log dell'applicativo DocWay vero e proprio, ossia della web application scritta utilizzando il framework Java Server Faces. Questi log sostanzialmente hanno come scopo quello di tracciare eventuali errori applicativi per facilitarne l'individuazione e la risoluzione.
- docway4-service.log: in questi log vengono tracciate tutte le richieste HTTP che vengono effettuate dalla web application DocWay4 verso la web application di backend denominata Service. Il Service identifica ossia lo strato software che riceve tutte le richieste, le elabora e restituisce il risultato. Questo log è destinato ad un utilizzo prettamente sistemistico per l'individuazione degli errori anche se traccia tutte le operazioni del sistema: utente, timestamp, parametri.
Questi log vengono creati nella directory logs di Apache Tomcat 7.
docway4.log
In questi log vengono tracciati gli accessi applicativi e il caricamento dei template utilizzati da Docway4:
Esempio accesso utente: 2017-01-24 09:44:39,096 [ajp-bio-8009-exec-24] INFO - LoginFilter.doFilter(), remoteUser caricato: GRGNNL64B56D205V Esempio caricamento home: 2017-01-24 09:44:39,111 [ajp-bio-8009-exec-24] INFO - /DocWay4/docway/home.jsf entering request #37666 Esempio caricamento template: 2017-01-24 09:44:39,111 [ajp-bio-8009-exec-25] INFO - /DocWay4/docway/showdoc@arrivo.jsf exiting request #37665 (187ms)
Non tutti gli errori riscontrati nel log sono significativi e pertanto possono essere tralasciati. Ad esempio i seguenti:
2017-01-24 09:44:40,299 [ajp-bio-8009-exec-23] ERROR - NumConverter.getAsString(): got exception... For input string: "" 2017-01-24 09:44:34,767 [ajp-bio-8009-exec-23] ERROR - ClassifConverter.getAsObject(): got exception... For input string: "A3.2"
docway4-service.log
Tutte le richieste in ingresso vengono tracciate tramite una stringa del tipo:
<acl o docway jsp (resource path)> entering request #<request number> {key-value pairs (http parameters)} Esempio: 2017-02-13 16:49:27,646 [http-bio-8080-exec-66] INFO - /DocWay4-service/application/xdocway/engine/xdocway.jsp entering request #292 {fascicoli_MostraGerarchia=, cuttingBranch=, personalView=, physDoc_infasc=, pwdLock=, cod_uff_infasc=, resourceFileCustomDir=, pwdInfo=, hierStatus=0, soggetto_infasc=, pos=0, qopt=0, lookup_xq=, physDoc=, selid=, languageMarker=traduzione@lingua, mansioni=Checker$#$RL0035;Sviluppatore$#$RL0003;Capo progetto$#$RL0002;Archivista professionista$#$RL0036, docStart=0, groups=, opt=0, currDate=20170213, pwdChangeInfo=, pageCount=12, host=, selTable=, cName=, qadj=0, lookup_campi=, propertyEntry=, jReportInfo=, selRac=, descrizione_rep=, stpTitle=, view=, language=it, showdocUOR=, qext=, cCount=, respUOR=, dt=xdocwaydoc, port=-1, _hca=, wfId=, appStringPreferences=§10§§§§§Si§Si§Si§A§No§§§3, query=, cIsPublic=, colsSize=, hierCount=24, dw4customTemplate=, revSel=, sele=0 0 ,103979, xdocwaydoc ;0, childLast=1, _hcf=, rangeDocs=, lookup_alias=, browser=, _r=, warnings=, verbo=query, rolesManagement=true, allotri=, qord=, matricola=PI000156, keypath='', globalFormRestore=, urlToLaunch=, enableIW=false, opNomePersona=Amministratore Docway, classif_infasc=, pwd=, nome_uff_infasc=, keyCount=12, userRights=, tipo_uff_infasc=, specificDbCode=, klAll=, lookup_db=, xMode=, count=0, jsessionid=F47BA65FC3BBA5F28C42F06EFBD9247B, noRef=, thBackPage=thBackPage, bAssegnaLinkFasc=, pathFiles=, wfPos=, wfAction=, codice_rep=, lookup_fieldVal=, nome_persona_infasc=, login=, wfMode=, db=xdocwaydoc, classif_cod_infasc=, dbTable=@qmainpage, thVOptions=, relation='', fromLookup=, wfLock=, flap=, xverb=, transformJava=, uri=/DocWay4-service/application/xdocway/engine/xdocway.jsp, xslExportFilterName=, docInGestioneUOR=#|#ç00003|Servizio Tecnico Bologna, WfFunctionInteractionManagerClass=, diritto_infasc=, keylist=, opCodPersona=PI000156, toDo=, appPreferences=2, doceditUOR=, startkey='', currYear=2017, wfText=, pwdPhysdoc=, uorInGestioneSelected=00003, qordIdx1=, classifFormat=, klRac=, embeddedApp=, repVisComp=, userInfo=Amministratore Docway (Servizio Tecnico Bologna) [fgrillini@3di.it] %Programmatore%, jReportParams=, _cd=&h3Story=false&dicitCategoria=Categoria|Categorie&dicitComunicazione=Comunicazione|Comunicazioni&organi=BOL-ORG_PROVA|Organo di prova||Flusso_liquidazione_fatturaPA_asolo|01|Inserimento punto all'odg|Flusso_liquidazione_fatturaPA_asolo|delibera#|#BOL-aa|aaaaa||Flusso_di_prova|aa| Inserimento punto all odg|Flusso di prova|delibera#|#BOL-3DI|Consigli di amministrazione|1.rtf|Giunta_informativa_responsabili_area;Giunta_informativa_responsabili_area|01;02|Proposta CDA;Comunicazione CDA|Giunta informativa responsabili area;Giunta informativa responsabili area|delibera;comunicazione&lista_odg=BOL-ORG_PROVA:#|#BOL-aa:#|#BOL-3DI:ncandelora@3di.it&lista_risultati=BOL-ORG_PROVA:#|#BOL-aa:#|#BOL-3DI:ncandelora@3di.it&lista_verbali=BOL-ORG_PROVA:#|#BOL-aa:#|#BOL-3DI:ncandelora@3di.it&lista_seduta=BOL-ORG_PROVA:#|#BOL-aa:#|#BOL-3DI:ncandelora@3di.it&baseDocUrl=http://docway-test.3di.it:80/DocWay4/docway/&, acl=, hierSearchShow=none, qordIdx=, errorMsgHandType=, inclusionFields=, specificAppCode=, exclusionFields=, wfFCount=, cod_persona_infasc=, hierSearchList=, wfActive=true, selectedWfDocs=, lookup_new=, wfDoc=, lookup_titolo=, cId=, user=, wfSelId=, aclDb=acl}
La fine delle richieste viene tracciata tramite una stringa del tipo:
<acl o docway jsp (resource path)> exiting request #<request number> (<elapsed time>ms) Esempio: 2017-02-13 16:49:29,009 [http-bio-8080-exec-66] INFO - /DocWay4-service/application/xdocway/engine/xdocway.jsp exiting request #292 (1364ms)
Anche in questo caso nel log vengono scritti errori non significativi che posso essere ignorati:
2017-02-14 16:56:22,545 [http-bio-8080-exec-388] ERROR - invalid query="" 2017-02-14 16:56:51,551 [http-bio-8080-exec-519] ERROR - 2017.02.14 16:56:51.551 conn 2 Errore di apertura 2017-02-14 16:56:51,551 [http-bio-8080-exec-519] ERROR - Error page caught an exception! java.sql.SQLException: Errore di apertura 2017-02-14 17:00:57,327 [http-bio-8080-exec-404] ERROR - 2017.02.14 17:00:57.327 conn 2 Attenzione: non trovato documento figlio java.sql.SQLException: Attenzione: non trovato documento figlio
Altre tipologie di errori sono invece gestiti applicativamente con un messaggio di errore proposto all’utente; anche questi pertanto possono essere ignorati:
2017-02-14 17:02:04,236 [http-bio-8080-exec-420] ERROR - Email.sendWithMatricola(): got exception looking for email address for matricola PI001027 java.lang.Exception: Indirizzo email non valido 2017-02-14 17:05:35,401 [http-bio-8080-exec-470] ERROR - 2017.02.14 17:05:35.401 conn 2 Valore non univoco. Value is not unique Required Append (Violate 1337639) java.sql.SQLException: Valore non univoco. Value is not unique Required Append (Violate 1337639)