---
title: "Debug/log klass"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/52609-debug-log-klass"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "Viktor"
published: "2002-09-08T17:33:28.000Z"
updated: "2002-09-10T07:53:44.000Z"
replies: 6
views: 404
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/52609-debug-log-klass"
---

# Debug/log klass

## #1 — Viktor, 2002-09-08T17:33Z

(svårt att hitta en titel till tråden :))

Hade tänkt att göra en liten debug klass som skriver lite output till en fil undertiden som man kör applikationen. Applikationen är en webapp med servlet, jsp, taglib osv så jag tänkte spara debug klassens objektet i application contexten.

Nu till mitt problem, hur gör jag när jag lägger ut programmet på riktigt? Ska jag ta bort alla anropp till debug skrivaren, ska jag ha en if sats framför varje anropp till den eller kan man kolla det när man är i klassen? Vad är bäst helt enkelt.

/Viktor

Permalänk: https://www.webforum.nu/p/52609

## #2 — Jaar, 2002-09-09T11:42Z

Jag brukar köra en constant i klassen .... boolean debug = true;
som jag ändrar till false innan jag lägger upp den... tycker jag fungerar bra.. dock tar det ju lite lite på prestandan mot om du tar bort allt som har med klassen att göra... men å andra sidan så vill du lätt kunna aktivera debug-funktionen om du ska göra ändringar/tillägg... 
Sen brukar jag ibland köra med en debug på normala klasser också, så att man vet om just den klassen ska debuggas...

if(this.doDebug() && logger.doDebug())
{
  logger.writeLog("Logga detta");
}

Permalänk: https://www.webforum.nu/p/778746

## #3 — Chainsaw, 2002-09-09T14:55Z

Själv har jag två olika uppstartsklasser beroende på om debugging körs eller inte. Koden i dom startar egentligen bara den riktiga koden, men tillhandahåller även en referens till sig själv och en final static boolean. Kod som sen kollar mot den kan endera väljas att alltid exekveras eller tas bort helt av en smart JVM.

Är det inte underbart med program som optimeras under runtime?

Permalänk: https://www.webforum.nu/p/778908

## #4 — sgtpepper, 2002-09-09T15:12Z

Det allra bästa tycker jag är att kunna slå av och på loggning under körning, särskilt om det är en webbapplikation. Oftast vill man ju logga även när applikation är uppe och snurrar skarpt.

Även om det kan vara kul att skriva egen loggfunktionalitet så är det lite som att uppfinna hjulet på nytt, använd istället [Log4J](http://jakarta.apache.org/log4j/docs/index.html) som är det mest använda loggnings-API:et för Java, det är fasligt bra och snor inte prestanda.

Permalänk: https://www.webforum.nu/p/778920

## #5 — Viktor, 2002-09-09T17:37Z

Laddar ner Log4J nu och ska se hur det ser ut och om jag kan få igång det :) Tack för alla tips!

/Viktor

Permalänk: https://www.webforum.nu/p/779034

## #6 — Viktor, 2002-09-09T21:43Z

Fråga, igen :)

Jag har tidigare kör med 

```
catch(SQLException sql)
{
  getServletContext().log("A database error occurred while loading vgbbconfig",sql);
}
```

och

```
catch(SQLException sql)
{
  sql.printStackTrace(System.err);
}
```

ska man ha kvar dessa fel utskrifter också även om man kör med Log4J eller är det lika bra att ta bort dem.

Har fått Log4J att fungera så som jag vill ha det nu och det blev ju riktigt bra! Tack för tipset.

/Viktor

Permalänk: https://www.webforum.nu/p/779263

## #7 — Lime, 2002-09-10T07:53Z

Om man gör egna logklasser så brukar det vara brukligt att använda en systemparameter så att man t.ex. säger -Ddebug=level1 för level1 debuggning.

Sedan kollar man bara i koden om flaggan är medskickad.

Men Log4J är riktigt trevlig att använda om man inte vill använda det som numera finns med i Java1.4...

/Lime

Permalänk: https://www.webforum.nu/p/779396

---

Tråden på webben: https://www.webforum.nu/amne/java/52609-debug-log-klass
