Web-applikasjoner Prosjekt3 Logging Gruppe 9 Malik Muhammad Naeem Kevan Qureshi
Hvorfor bruke logging? Logg gir presis beskrivelse av en kjørende applikasjon Logg kan lagres til en fil og deretter leses senere. For mange er det nyttig å vite hva som skjer uten å sette seg inn i koden
Når skal man bruke logging? I utviklingsstadiet: - Logg funksjonen kan hjelpe deg med å debuge koden din I et produksjonsmiljø: - Hjelper deg med å feilsøke problemer som oppstår
Apache logging Vi har 3 forskjellige logge rammeverk: Log4j for Java Log4cxx for C++ Log4net for Micosoft.NET
Apache log4j Apache log4j har tre utviklingsgrener: En stabil versjon 1.2 En nedlagt versjon 1.3 En eksperimentell versjon 2.0
Hello.java log4j Last ned log4j fra logging.apache.org Pakk ut.zip filen deretter Legg log4j-VERSION.jar i din classpath Du kan nå teste om det fungerer ved å kjøre følgende kode:
Hello.java log4j import org.apache.log4j.Logger; import org.apache.log4j.BasicConfigurator; public class Hello { private static final Logger logger = Logger.getLogger(Personnr.class); public static void main(String argv[]) { BasicConfigurator.configure(); logger.debug(“Hei Verden."); logger.info(“Ha en fin dag."); }
Resultat av Hello.java 0 [main] DEBUG Personnr - Hei Verden. 16 [main] INFO Personnr - Ha en fin dag.
Skrive til fil Ting styres via en log4j.properties fil som må legges i src katalogen Du kan også bruke xml for det samme. Log4j ser først etter en xml fil, deretter en dtd fil også leser den av log4j.properties. log4j.rootCategory=warn, stdout, R -> 2 stk apenders, den siste bruker vi til å lagre til fil. log4j.appender.R.File=example.log
Log4j.properties #### Use two appenders, one to log to console, another to log to a file log4j.rootCategory=debug, stdout, R # Print only messages of priority WARN or higher for your category log4j.category.your.category.name=WARN # Specifically inherit the priority level #log4j.category.your.category.name=INHERITED #### First appender writes to console log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout # Pattern to output the caller's file name and line number. log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n #### Second appender writes to a file log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.File=example.log log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n # Control the maximum log file size log4j.appender.R.MaxFileSize=100KB # Archive log files (one backup file here) log4j.appender.R.MaxBackupIndex=1
Log4j.xml Alternativ til log4j.properties:
Flere nivåer ved logging allAlle nivåer er inkludert customs-levels. tracefor utvikling; kan brukes til å følge med på oppstart av et program debugfor utvikling og debugging infooptionally; beskjeder som er på samme nivå som “verbose” mode. warnFor advarsel beskjeder som blir logget til en fil f.eks. Eller når noen prøver å logge seg inn med ugyldig passord errorFor applikasjon feilmelding fatalFor kritiske feilmeldinger. Som f.eks at database-serveren ikke fungerer. noLogger ikke I det hele tatt
Anbefaling Ikke bruk System.out.println Bruk log4j
Spørsmål?