lib of static class methods, java logging

F

frank

Was wondering what might be the better way to do something in java. I
have a class of static methods that are a library and I want to use the
java. To do that I need to use the log variable I have setup already.
What is the best way to initialize and use that in the methods?

1. Create an instance variable in the static class lib for log and do a
new on the thing when start my program

_util = new JBFSAUtility(logger);
....

static Logger logger;

JBFSAUtility(Logger l)
{
logger = l;
}
......


2. Pass the log variable to each method?

JBFSAUtility.method1(Logger l);

Thanks,

Frank
 
B

Boudewijn Dijkstra

frank said:
Was wondering what might be the better way to do something in java. I have a
class of static methods that are a library and I want to use the java. To
do that I need to use the log variable I have setup already. What is the
best way to initialize and use that in the methods?

1. Create an instance variable in the static class lib for log and do a new
on the thing when start my program

_util = new JBFSAUtility(logger);
...

static Logger logger;

JBFSAUtility(Logger l)
{
logger = l;
}
.....

This code will overwrite static member logger everytime a new object is
created. If class JBFSAUtility should use the same logger in the entire VM,
then keep it static and don't use a constructor at all. Otherwise, don't make
logger static, and use JBFSAUtility objects.
2. Pass the log variable to each method?

JBFSAUtility.method1(Logger l);

This code is even less sensible from a object-oriented point of view...
 
H

Hemal Pandya

static Logger logger;

JBFSAUtility(Logger l)
{
logger = l;
}

In the interest of symmetry consider providing a static method
setLogger in JBFSAUtility. You would still have to worry about some
other method of the class getting called before the setLogger is
called, but that problem you have to tackle even with the current
approach.

So the call

_util = new JBFSAUtility(logger);

changes to

JBFSAUtility.setLogger(logger);
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,763
Messages
2,569,563
Members
45,039
Latest member
CasimiraVa

Latest Threads

Top