Avatar billede andersit Nybegynder
19. december 2002 - 22:50 Der er 10 kommentarer

Brug af printStackTrace()

Hej.

Hvad er god skik mht. brug af printStackTrace() i et færdigt program. Hvis det bruges, printes exceptions jo ud i dos vinduet. Det er måske ikke så smart?

Hvad siger I andre?

mvh.
anders
Avatar billede mfalck Praktikant
19. december 2002 - 22:56 #1
brug Log4J fra jakarta - der kan du konfigurere hvad du vil have ud i konsolvinduet på flere niveauer - er ret godt.
Avatar billede arne_v Ekspert
19. december 2002 - 23:26 #2
Det vigtigste er at informationen kommer ud.

Man må aldrig sluge exceptions.

Derfor er jeg heller ikke ovebevist om, at log4j er det
rette valg.

log4j er et fremragende tool til at alle mulige typer af
fejl og warnings.

Men desværre kan man jo også disable log4j output.

Hvis det er en server applikation så vil jeg anbefale
printStackTrace således at det aldrig kan slåes fra.

Hvis det er en client applikation der bruges af ikke-IT-kyndige,
så kan man godt bruge log4j, så de undgår at blive forvirret af de
kryptiske ting der bliver skrevet ud. Og de kan heller ikke
finde ud af at disable log4j output.
Avatar billede wendt Nybegynder
19. december 2002 - 23:27 #3
Hvis du bruger java 1.4 så findes der java.util.logging pakken se http://java.sun.com/j2se/1.4/docs/guide/util/logging/overview.html
Her kan du skrue også på log-level i flere niveauer, samt logge i flere forskellige formater, eg XML. Du kan også lave dine egne log handlere. Jeg bruger det hele tiden.
Avatar billede arne_v Ekspert
19. december 2002 - 23:30 #4
java.util.logging har så vidt jeg ved mindre funktionalitet
end log4j !
Avatar billede arne_v Ekspert
19. december 2002 - 23:35 #5
Og lige for en god ordens skyld: log4j er fremragende også på server.
Jeg bryder mig bare ikke om at output af exceptions kan
disables. Men log4j er glimrende til almindelige fejl,
warnings, debug etc..
Avatar billede disky Nybegynder
20. december 2002 - 04:04 #6
log4j er IKKE en integreret del af java og derfor er jdk 1.4's indbyggede logning klart at foretrække.
Avatar billede arne_v Ekspert
20. december 2002 - 05:59 #7
Ikke ubetinget enig.

Man sparer at skulle distribuere en jar-fil.

Men man binder sig til 1.4 eller højere.

Mange server applikationer kommer med log4j.

Og som sagt er det mit indtryk at log4j har mere
funktionalitet.

Så jeg synes ikke at det er så entydigt.
Avatar billede mfalck Praktikant
20. december 2002 - 09:50 #8
det er rigtigt at du kan disable output fra log4j - men det kan man vel i princippet også gøre med alm output ved at kalde java med ">> /dev/null 2>>&1" på kommandolinien ..
Avatar billede soelvpil Nybegynder
20. december 2002 - 23:43 #9
Har kun prøvet log4j, og det virker fremragende. Der findes også et par værktøjer, så man blot printer hele møget ud i loggen, og så i en swing gui filtrerer ud, hvilke man er interesseret i.

Jeg tror at log4j og jdk1.4-logging er nogenlunde ækvivalente, men jeg er nok lidt jakarta-fan.

De fleste kommercielle java-servere har det dog ikke så godt med jdk1.4 endnu, men det kommer nok i løbet af 2003.

Der findes faktisk under jakarta et commons-logging-projekt, som "abstraherer" over log-API'er. Det betyder, at man med konfigurationsfiler kan switche mellem log4j og jdk1.4 logging...hvis man skulle ha den slag sære lyster
Avatar billede arne_v Ekspert
21. december 2002 - 08:12 #10
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester