21. november 2004 - 22:44
Der er
75 kommentarer og 1 løsning
Hjælp til Log4j
Hejsa Hvad mener de, når der står: log4j:WARN No appenders could be found for logger (FTPServer). log4j:WARN Please initialize the log4j system properly.
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
21. november 2004 - 22:49
#1
At du skal initialisere log4j !
21. november 2004 - 22:51
#2
Hvis du faktisk skal bruge noget log4j output skal du lave en passende konfiguration. Læs evt. min artikel og logging. Hvis du bare vil af med den besked, så prøv at sæt følgende ind først i din main: org.apache.log4j.BasicConfigurator.configure(); org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.INFO);
21. november 2004 - 22:51
#3
21. november 2004 - 22:57
#4
har kigget din artikel igennem og er faktisk det, jeg har lavet det udfra!
21. november 2004 - 22:59
#5
Normalt vil du have enten -Dlog4j.configuration=file:///C:/dir/log4j.properties eller: -Dlog4j.configuration=file:///C:/dir/log4j.xml hvor de filer så sætter log4j op.
21. november 2004 - 23:02
#6
Hvornår skal jeg skrive det der?
21. november 2004 - 23:06
#7
Det er en JVM parameter. Altså: java -Dlog4j.configuration=file:///C:/dir/log4j.properties -classpath xxx.jar;yyy.jar;zzz.jar DinKlasse
21. november 2004 - 23:16
#8
Det får jeg en NoClassDefFound exception i "main" af.
21. november 2004 - 23:18
#9
På hvilken klasse ? Har du huske alle jar filerne ?
21. november 2004 - 23:20
#10
ja, jeg tilføjer den ene(?) jar-fil, der skal bruges i mit tilfælde log4j-
21. november 2004 - 23:21
#11
log4j-1.2.9.jar! Det er vel det?
21. november 2004 - 23:21
#12
og på min FTPServer
21. november 2004 - 23:24
#13
FTPServeren = klassen
21. november 2004 - 23:27
#14
Kan du copy paste hele linien og hele fejlen ind ?
21. november 2004 - 23:37
#15
C:\ftp\ftpserver>java -Dlog4j.configuration=file:///C:/dir/log4j.properties -cla sspath log4j-1.2.9.jar FTPServer Exception in thread "main" java.lang.NoClassDefFoundError: FTPServer
21. november 2004 - 23:41
#16
java -Dlog4j.configuration=file:///C:/dir/log4j.properties -classpath .;log4j-1.2.9.jar FTPServer
21. november 2004 - 23:44
#17
giver samme fejl. Skal jeg egentlig have oprettet C:/dir/log4j.properties?
21. november 2004 - 23:45
#18
Bruger du pakker ? ---- Ja !
21. november 2004 - 23:46
#19
bruger ikke pakker nej
21. november 2004 - 23:47
#20
java -Dlog4j.configuration=file:///C:/ftp/ftpserver/log4j.properties -classpath .;log4j-1.2.9.jar FTPServer
21. november 2004 - 23:47
#21
skal jeg i så fald bruge!
21. november 2004 - 23:47
#22
men samme resultat!
21. november 2004 - 23:51
#23
Der sker også fejl, hvis jeg bare skriver java FTPServer. Har du brug for noget programmeringskode?
21. november 2004 - 23:55
#24
Ligger FTPServer.class i det dir hvor du kører fra ?
21. november 2004 - 23:56
#25
Ellers skal det måske være: java -Dlog4j.configuration=file:///C:/ftp/ftpserver/log4j.properties -classpath C:\ftp\ftpserver;log4j-1.2.9.jar FTPServer
21. november 2004 - 23:56
#26
ja..!
21. november 2004 - 23:56
#27
Det er ikke en kode fejl
21. november 2004 - 23:56
#28
Altså, alt ligger under c:/FTP/FTPSERVER
21. november 2004 - 23:57
#29
Med din "java -Dlog4j.configuration=file:///C:/ftp/ftpserver/log4j.properties -classpath C:\ftp\ftpserver;log4j-1.2.9.jar FTPServer" siger den det samme, som i mit første indlæg.
22. november 2004 - 00:06
#30
skal jeg bruge FileApender, hvis jeg vil have det ud i en fil?
22. november 2004 - 00:07
#31
Ja. Eller evt. en af de mere avancerede fil appendere.
22. november 2004 - 00:08
#32
Men virker det nu ?
22. november 2004 - 00:09
#33
Til server brug er DailyRollingFileAppender ofte praktisk ...
22. november 2004 - 00:10
#34
Dvs. at hvis jeg vil have det ud, som du siger i en properties fil der, skal jeg så lave en FileApender?
22. november 2004 - 00:12
#35
Smutter i seng, du kan bare blive ved med at skrive! Kommer igen i morgen :)
22. november 2004 - 15:17
#36
nogle idé arne?
22. november 2004 - 15:31
#37
Kan du prøve at gentage 23:37:13 og poste output af en dir kommando fra samme dir samt poste de øverste 10 linier af FTPServer.java ?
22. november 2004 - 18:58
#38
C:\ftp\ftpserver>java -Dlog4j.configuration=file:///C:/dir/log4j.properties -classpath log4j-1.2.9.jar FTPServer og hvad er et output af en dir kommando?!?! import java.net.*; import java.io.*; import org.apache.log4j.*; public class FTPServer { static final Logger logger = Logger.getLogger("FTPServer"); public static void main(String[] args) throws IOException { Date date = new Date(); logger.info("Start"); ServerSocket ss = null; try { ss = new ServerSocket(21); } catch (IOException e) { System.err.println("Kunne ikke lytte paa port 21"); logger.debug(e.getMessage()); }
22. november 2004 - 19:22
#39
Hvordan kan du bruge Date uden at importere java.util ?
22. november 2004 - 19:26
#40
har lavet min egen lille klasse ved siden af, da jeg skal have stillet det op på en bestemt måde og det skulle testes hurtigt - og kunne ikke lige hitte ud af simpledateformat :)
22. november 2004 - 19:30
#41
C:\E1>dir Volume in drive C is ARNEPC2_C Volume Serial Number is E09B-1D63 Directory of C:\E1 22/11/2004 19:21 <DIR> . 22/11/2004 19:21 <DIR> .. 22/11/2004 19:25 231 FTPServer.java 1 File(s) 231 bytes 2 Dir(s) 5.913.518.080 bytes free C:\E1>javac -classpath C:\Jakarta\log4j-1.2.8\dist\lib\log4j-1.2.8.jar FTPServer.java C:\E1>dir Volume in drive C is ARNEPC2_C Volume Serial Number is E09B-1D63 Directory of C:\E1 22/11/2004 19:25 <DIR> . 22/11/2004 19:25 <DIR> .. 22/11/2004 19:25 596 FTPServer.class 22/11/2004 19:25 231 FTPServer.java 2 File(s) 827 bytes 2 Dir(s) 5.913.518.080 bytes free C:\E1>java -classpath .;C:\Jakarta\log4j-1.2.8\dist\lib\log4j-1.2.8.jar FTPServe r log4j:WARN No appenders could be found for logger (FTPServer). log4j:WARN Please initialize the log4j system properly. C:\E1>java -Dlog4j.configuration=file:///C:/log4j.properties -classpath .;C:\Jakarta\log4j-1.2.8\dist\lib\log4j-1.2.8.jar FTPServer FTPServer 2004-11-22 19:29:39,937 INFO hukus pokus C:\E1>type FTPServer.java import org.apache.log4j.*; public class FTPServer { static final Logger logger = Logger.getLogger("FTPServer"); public static void main(String[] args) throws Exception { logger.info("hukus pokus"); } } C:\E1>type C:\log4j.properties log4j.category.FTPServer = debug, console log4j.appender.console.threshold = info log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.layout = org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern = %-30c %d %-5p %m%n
22. november 2004 - 19:33
#42
OK men prøv lige at kigge på ovenstående og check om dit matcher
22. november 2004 - 19:42
#43
C:\E1>java -Dlog4j.configuration=file:///C:/log4j.properties -classpath .;C:\Jakarta\log4j-1.2.8\dist\lib\log4j-1.2.8.jar (selvfølgelig rettet til) her går min galt
22. november 2004 - 19:43
#44
java -Dlog4j.configuration=file:///C:ftp/ftpserver/log4j/log4j.properties -classpath .;C:\ftp\ftpserver\log4j-1.2.9.jar FTPServer
22. november 2004 - 19:44
#45
java -Dlog4j.configuration=file:///C:/ftp/ftpserver/log4j/log4j.properties -classpath .;C:\ftp\ftpserver\log4j-1.2.9.jar FTPServer mente jeg selvfølgelig
22. november 2004 - 19:51
#46
Og fejlen er stadig : Exception in thread "main" java.lang.NoClassDefFoundError: FTPServer ? Og du fik ingen fejl da du oversatte FTPServer ?
22. november 2004 - 19:56
#47
oversatte? Hvilken af kommandoerne var det? og ja, samme fejl!
22. november 2004 - 19:57
#48
I mit eksempel: C:\E1>javac -classpath C:\Jakarta\log4j-1.2.8\dist\lib\log4j-1.2.8.jar FTPServer.java som gjorde at man gik fra: Directory of C:\E1 22/11/2004 19:21 <DIR> . 22/11/2004 19:21 <DIR> .. 22/11/2004 19:25 231 FTPServer.java 1 File(s) 231 bytes 2 Dir(s) 5.913.518.080 bytes free til: Directory of C:\E1 22/11/2004 19:25 <DIR> . 22/11/2004 19:25 <DIR> .. 22/11/2004 19:25 596 FTPServer.class 22/11/2004 19:25 231 FTPServer.java 2 File(s) 827 bytes 2 Dir(s) 5.913.518.080 bytes free
22. november 2004 - 19:58
#49
sletter lige min class fil så, 2 sek. Jeg prøver igen!
22. november 2004 - 20:00
#50
class filen oprettes fint!
22. november 2004 - 20:18
#51
Og samme fejl ?
22. november 2004 - 20:20
#52
når jeg kører filen, ja
22. november 2004 - 20:34
#53
Og du står i det directory, hvor class filen ligger ?
22. november 2004 - 20:37
#54
ja
22. november 2004 - 20:48
#55
bemærkede du havde to dir i din status. Hvad er det for nogle?
22. november 2004 - 21:26
#56
. og .. ? Det bare current dir og parent dir !
22. november 2004 - 21:30
#57
nå ok. Kunne være, det var nogle interessante nogle. Brug for hele kildekoden?
22. november 2004 - 21:35
#58
Jeg ville hellere se output fra en dir komamando copy pastet herind
22. november 2004 - 22:21
#59
22-11-2004 22:13 <DIR> . 22-11-2004 22:13 <DIR> .. 22-11-2004 22:13 1.194 FTPServer.java 01-11-2004 21:21 352.291 log4j-1.2.9.jar 2 fil(er) 353.485 byte 2 mappe(r) 4.097.003.520 byte ledig (har lavet en ny mappe)
22. november 2004 - 22:25
#60
herefter kommer der en .class fil ud af denne kommando: javac -classpath C:\ftp\test\log4j-1.2.9.jar FTPServer.java
22. november 2004 - 22:27
#61
java -classpath .;C:\ftp\test\log4j-1.2.9.jar FTPServer giver den her fejl: log4j:WARN No appenders could be found for logger (FTPServer). log4j:WARN Please initialize the log4j system properly.
22. november 2004 - 22:33
#62
Og når du putter -D på så kan den ikke længere finde klassen ? Mystisk !
22. november 2004 - 22:36
#63
hmm.. hvis min jar fil ligger i samme mappe som min java fil - skal jeg så skrive alt det der hver gang?
22. november 2004 - 22:38
#64
java -Dlog4j.configuration=file:///C:/ftp/test/log4j.properties -classpath .;C:\FTP\test\log4j-1.2.9.jar FTPServer gav en filenotfoundexception. Skal jeg have oprettet filen i forvejen?
22. november 2004 - 22:41
#65
Ja. C:\ftp\test\log4j.properties skal eksistere
22. november 2004 - 22:42
#66
Du kan starte med det her indhold: log4j.category.FTPServer = debug, console log4j.appender.console.threshold = info log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appender.console.layout = org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern = %-30c %d %-5p %m%n og så udbygge hen af vejen.
22. november 2004 - 22:53
#67
Sådan. NU virker den :)! Tak! Smid et svar og få dine point(tror sgu det var mere end 15 point værd - kan man øge satsen på nogen måde?)
22. november 2004 - 22:54
#68
Når den siger det der med INFO - hvad skal man så gøre for at køre filen og finde de fejl, der er?
22. november 2004 - 23:01
#69
22. november 2004 - 23:05
#70
men kunne du hjælpe mig med 22:54:13
22. november 2004 - 23:06
#71
Det sidste forstår jeg ikke helt. Du sætter en masse log kald ind i din kode: debug - for at masse output du kan bruge under troubleshooting info - for extra information warning /error / fatal - for det Pointen er så at du ved normal kørsel konfigurerer log4j til kun at udskrive f.eks. fra warning og mere alvorligt. Men når så du har et problem, så i stedetfor at skal ind og sætte en masse System.out.println ind i din kode, så retter du bare i log4j config så den udskriver fra debug og opefter.
22. november 2004 - 23:07
#72
Fejlene skal du selv finde. Men en masse info og debug output hjælper gevaldigt med at kunne finde fejlen.
22. november 2004 - 23:13
#73
Til en FTP server kunne jeg forestille mig: error - alle exceptions info - high level beskrivelse af hvad der er sket (fil xxxx.dat på 12345 bytes uploaded) debug - oplysninger om socket connect & disconnect + de rå FTP kommandoer modtaget og svar sendt
22. november 2004 - 23:25
#74
det jeg mener, det er, at når jeg har modtaget det der "info" tingest, så går den i stå og så kan ejg ikke skrive mere.
22. november 2004 - 23:40
#75
Det forstår jeg ikke. Kan du forklare lidt mere, Hvis output generer dit skærm billede så drop console appenderen og brug en file appender.
23. november 2004 - 12:47
#76
djeg har fundet ud af det selv :)!
Kurser inden for grundlæggende programmering