The fix is so simple. LogManager loads the properties file using the URL. I just provided file url and it was all done. Thanks for your help, Jacob. -Abbas
----- Original Message ---- From: Jacob Kjome <[EMAIL PROTECTED]> To: Log4J Users List <[email protected]>; Mirza Abbas Raza <[EMAIL PROTECTED]> Sent: Wednesday, September 27, 2006 2:11:15 PM Subject: Re: log4j doesn't log files when weblogic is run as a windows service. Did you ever try setting log4j.debug=true in your property file? What does it spit out to the console? I don't recall if you can set this as a system property or not? Look at LogManager.java for something like "log4j.debug". In that case, you could do -Dlog4j.debug=true. If you see no output to Weblogic's console log after setting it in the properties file, then I would suspect that some other config file is getting picked up in preference to your own. In that case, hopefully the system property would help. Jake Quoting Mirza Abbas Raza <[EMAIL PROTECTED]>: > I think log4j.properties is being read by the application. I verified this in > the same way you mentioned. > > 1. Wrote a method in my Struts Action to read the "log4j.configuration" from > system variables. Using the value read by this variable, I did a > fileinputstream and loaded into Properties. Then, I could read all the > properties from the log4j.properties file. > 2. In the same Struts Action, I 'stepped into' using eclipse debugger into > Logger.getLogger(clazz) stack. Log4j tried to get an appender all the way to > the root, but didn't find one. > > thanks, > Abbas > > ----- Original Message ---- > From: Jacob Kjome <[EMAIL PROTECTED]> > To: Log4J Users List <[email protected]>; Mirza Abbas Raza > <[EMAIL PROTECTED]> > Sent: Wednesday, September 27, 2006 1:38:12 PM > Subject: Re: log4j doesn't log files when weblogic is run as a windows > service. > > > It's probably that the config file never gets put in the classpath when you > run > as a service. I think you've claimed previously that you verified that it > was > in the classpath, but that's hard to believe. > > Why don't you do this. In some class (or a JSP), try to load up the config > file > as an inputstream from the classpath. If you are able to find it when > running > as a service, you will have ruled out this as a problem. However, if the > inputstream is null, then it will be proven that the config file is not in > the > classpath. > > > Jake > > Quoting Mirza Abbas Raza <[EMAIL PROTECTED]>: > > > Jacob, > > > > So, I got 1.2.14 version of log4j and ran the application as a service and > > manually. I plugged in eclipse debugger to see where the problem was. I > found > > that when I run manually, the appenders are getting created. Specifically, > > variable 'aai' has an instance of AppenderAttachableImpl for an appender, > in > > the callAppenders() api of Category class. However, 'aai' is null when the > > application is run as windows service. Appreciate your help. > > > > Thanks, > > Abbas > > > > > > ----- Original Message ---- > > From: Jacob Kjome <[EMAIL PROTECTED]> > > To: Log4J Users List <[email protected]> > > Sent: Monday, September 18, 2006 2:24:38 PM > > Subject: Re: log4j doesn't log files when weblogic is run as a windows > > service. > > > > > > A few quesions/comments... > > > > 1. What version of Log4j are you using? I think at some point, there was > a > > feature implemented which allowed Log4j to create any needed directories. > > This > > hadn't been the case previously. I think it got implemented maybe post > > 1.2.9, > > but I'm not positive. So, it might make sense that the directories got > > created. > > > > 2. Clearly Weblogic's service is setting the startup directory if you find > > your > > directories being created under "mydomain". > > > > 3. Are you sure that log4j.properties is getting picked up? Is it > possible > > some other config file is getting picked up? If log4j finds log4j.xml, it > > will > > be used in preference to log4j.properties. Also, try setting > > log4j.debug=true. > > Maybe you'll see some extra output. Add a console appender to make sure > you > > see > > this output. It should turn up in Weblogic's console log file. > > > > > > Jake > > > > Quoting Mirza Abbas Raza <[EMAIL PROTECTED]>: > > > > > So, Jake, here is what I did but didn't succeed. > > > > > > Excerpt from log4j.properties file. > > > # Specify the R log file > > > log4j.appender.R=org.apache.log4j.DailyRollingFileAppender > > > log4j.appender.R.File=logs/node/mylog.log > > > log4j.appender.DAILY.DatePattern='.'yyyy-MM-dd > > > > > > Scenario 1: Run as is. > > > - checked C:\winnt\system32. > > > - obviously no logs found. > > > > > > Scenario 2: Created directories logs/node in C:\winnt\system32. > > > - stopped service and restarted. > > > - no logs found in C:\winnt\system32\logs\node directory. > > > > > > Scenario 3: Changed log4j.appender.R.File=logs/node/mylog.log to > > > D:\mydirectory\domains\mydomain/logs/node/mylog.log > > > - stopped and restarted service. > > > - no logs found in D:\mydirectory\domains\mydomain/logs/node/mylog.log. > > > > > > I couldn't find a way to specify the startup directory with the weblogic > > > utility or the Java Service Wrapper and hence couldn't test it. However, > I > > > saw an interesting point in the properties for the service. > > > "D:\mydirectory\domains\mydomain\wrapper.exe -s > > > D:\mydirectory\domains\mydomain\conf\managedwrapper.conf". The logs/node > > > directory is located in mydomain directory. Wouldn't this point the logs > to > > > the right directory? > > > > > > Thanks, > > > Abbas > > > > > > > > > ----- Original Message ---- > > > From: Jacob Kjome <[EMAIL PROTECTED]> > > > To: Log4J Users List <[email protected]>; Mirza Abbas Raza > > > <[EMAIL PROTECTED]> > > > Sent: Monday, September 18, 2006 11:57:20 AM > > > Subject: Re: log4j doesn't log files when weblogic is run as a windows > > > service. > > > > > > > > > I'll bet they *do* get created. You just don't know where to look. What > > > does > > > your config look like? Does it use relative paths to the files? Keep in > > > mind, > > > relative paths are relative to the directory from which the JVM started. > > So, > > > if > > > you start on the command line, the path in the config file is relative to > > the > > > current directory in the command shell. > > > > > > OTOH, When you start up using a service, unless you define the startup > > > directory, it will default to "C:\WINDOWS\system32" (or the equivalent on > > > your > > > windows box). Furthermore, if your path includes a directory name, such > as > > > "./logs/mylog.log", and said directory doesn't exist already under > > > "C:\WINDOWS\system32", then Log4j won't bother creating it for you. You > > have > > > to make sure it exists before Log4j can write to the location. > > > > > > Look into that and let us know what you find. > > > > > > Jake > > > > > > Quoting Mirza Abbas Raza <[EMAIL PROTECTED]>: > > > > > > > All, > > > > > > > > The log4j framework doesn't seem to write to the logs when weblogic is > > run > > > as > > > > windows service. As I understand, the two things needed for the log4j > > > > framework are: > > > > - log4j.jar in classpath > > > > - log4j.properties as -Dlog4j.configuration. It contains the necessary > > > > configuration for logging. > > > > > > > > Both of the above mentioned artifacts are found correctly configured in > > the > > > > utilities that were used to create the windows service. I have used > both > > > bea > > > > provided utility and Java Service Wrapper from Tanuki Software. When > > > weblogic > > > > is started after the service installation, log files that were supposed > > to > > > be > > > > created by log4j don't appear. The ironic part is that when weblogic is > > > > started manually, the log files do appear. Is there a known workaround > > for > > > > this scenario? I appreciate any help. > > > > > > > > Environment info: > > > > OS - Windows 2000 server > > > > JDK - 1.4.2 > > > > Weblogic - 8.1 > > > > log4j - 1.2.7 > > > > > > > > Thanks, > > > > Abbas > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
