You can subscribe to this list here.
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(2) |
Nov
(10) |
Dec
(3) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2002 |
Jan
(17) |
Feb
(11) |
Mar
(2) |
Apr
(6) |
May
(17) |
Jun
(17) |
Jul
(4) |
Aug
(19) |
Sep
(21) |
Oct
(17) |
Nov
(6) |
Dec
(6) |
| 2003 |
Jan
(6) |
Feb
(6) |
Mar
(14) |
Apr
(16) |
May
(9) |
Jun
|
Jul
(4) |
Aug
(4) |
Sep
(1) |
Oct
(3) |
Nov
(1) |
Dec
(1) |
| 2004 |
Jan
(4) |
Feb
(3) |
Mar
|
Apr
(6) |
May
|
Jun
|
Jul
(2) |
Aug
(1) |
Sep
|
Oct
|
Nov
(3) |
Dec
|
| 2005 |
Jan
(1) |
Feb
|
Mar
|
Apr
(3) |
May
|
Jun
|
Jul
(7) |
Aug
(1) |
Sep
(8) |
Oct
(6) |
Nov
(4) |
Dec
(6) |
| 2006 |
Jan
(1) |
Feb
(7) |
Mar
|
Apr
|
May
(3) |
Jun
(1) |
Jul
|
Aug
(1) |
Sep
(4) |
Oct
|
Nov
(6) |
Dec
(1) |
| 2007 |
Jan
|
Feb
|
Mar
(7) |
Apr
(3) |
May
|
Jun
(4) |
Jul
(5) |
Aug
(35) |
Sep
(13) |
Oct
(3) |
Nov
|
Dec
(2) |
| 2008 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
(4) |
May
(5) |
Jun
|
Jul
|
Aug
(2) |
Sep
(4) |
Oct
|
Nov
(2) |
Dec
|
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(12) |
Nov
(1) |
Dec
|
| 2010 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
(5) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2011 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
(2) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2012 |
Jan
|
Feb
(3) |
Mar
|
Apr
(6) |
May
|
Jun
(1) |
Jul
|
Aug
(1) |
Sep
|
Oct
(5) |
Nov
|
Dec
(2) |
| 2013 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
(2) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2015 |
Jan
(3) |
Feb
(3) |
Mar
(6) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(2) |
| 2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
|
|
From: Bastiaan B. <Bas...@li...> - 2002-05-14 11:51:21
|
This has been fixed in m4/AC_C_INT64_T.m4 a few weeks ago. It is = available from CVS and will be in 0.3.2 . Regards, Bsstiaan Bakker LifeLine Networks bv=20 > -----Original Message----- > From: Thomas Porschberg [mailto:tho...@os...] > Sent: Tuesday, May 14, 2002 1:25 PM > To: Thomas Porschberg > Cc: log...@li... > Subject: Re: [Log4cpp-devel] HP-UX/gcc3.0.1/int64_t >=20 >=20 > Okay, I commented out > the lines for the #define LOG4CPP_HAVE_INT64_T > in include/log4cpp/config.h. >=20 > But this is not the best way... >=20 >=20 > On Tue, May 14, 2002 at 01:05:28PM +0200, Thomas Porschberg wrote: > >=20 > > I tried to compile on HPUX11 with gcc3.0.1 and the > > configure - script reported: > > . > > . > > . > > checking for int64_t... yes > > . > > . > > . > >=20 > > but the compilation of PatternLayout.cpp failed: > >=20 > > PatternLayout.cpp: In member function `std::string=20 > > log4cpp::PatternLayout::doFormat(const log4cpp::LoggingEvent&,=20 > > std::basic_string<char, std::char_traits<char>,=20 > std::allocator<char> >,=20 > > bool*)': > > PatternLayout.cpp:128: `int64_t' undeclared (first use this=20 > function) > > PatternLayout.cpp:128: (Each undeclared identifier is=20 > reported only once for=20 > > each function it appears in.) > > PatternLayout.cpp:128: parse error before `=3D' token > > PatternLayout.cpp:130: `t' undeclared (first use this function) > > *** Error exit code 1 > >=20 > > I used this shellscript: > >=20 > > #!/bin/ksh > >=20 > > unset CFLAGS > > export PATH=3D"/opt/gcc/bin:$PATH" > > export CXXFLAGS=3D'-g -Wall -pedantic' > > ./configure --prefix=3D/opt --enable-shared=3Dno > >=20 > > make > >=20 > > How to overcome this error ? > >=20 > > thomas > >=20 > > --=20 > >=20 > > _______________________________________________________________ > >=20 > > Have big pipes? SourceForge.net is looking for download=20 > mirrors. We supply > > the hardware. You get the recognition. Email Us:=20 > ban...@so... > > _______________________________________________ > > Log4cpp-devel mailing list > > Log...@li... > > https://lists.sourceforge.net/lists/listinfo/log4cpp-devel >=20 > --=20 >=20 > _______________________________________________________________ >=20 > Have big pipes? SourceForge.net is looking for download=20 > mirrors. We supply > the hardware. You get the recognition. Email Us:=20 > ban...@so... > _______________________________________________ > Log4cpp-devel mailing list > Log...@li... > https://lists.sourceforge.net/lists/listinfo/log4cpp-devel >=20 |
|
From: Thomas P. <tho...@os...> - 2002-05-14 11:25:21
|
Okay, I commented out the lines for the #define LOG4CPP_HAVE_INT64_T in include/log4cpp/config.h. But this is not the best way... On Tue, May 14, 2002 at 01:05:28PM +0200, Thomas Porschberg wrote: > > I tried to compile on HPUX11 with gcc3.0.1 and the > configure - script reported: > . > . > . > checking for int64_t... yes > . > . > . > > but the compilation of PatternLayout.cpp failed: > > PatternLayout.cpp: In member function `std::string > log4cpp::PatternLayout::doFormat(const log4cpp::LoggingEvent&, > std::basic_string<char, std::char_traits<char>, std::allocator<char> >, > bool*)': > PatternLayout.cpp:128: `int64_t' undeclared (first use this function) > PatternLayout.cpp:128: (Each undeclared identifier is reported only once for > each function it appears in.) > PatternLayout.cpp:128: parse error before `=' token > PatternLayout.cpp:130: `t' undeclared (first use this function) > *** Error exit code 1 > > I used this shellscript: > > #!/bin/ksh > > unset CFLAGS > export PATH="/opt/gcc/bin:$PATH" > export CXXFLAGS='-g -Wall -pedantic' > ./configure --prefix=/opt --enable-shared=no > > make > > How to overcome this error ? > > thomas > > -- > > _______________________________________________________________ > > Have big pipes? SourceForge.net is looking for download mirrors. We supply > the hardware. You get the recognition. Email Us: ban...@so... > _______________________________________________ > Log4cpp-devel mailing list > Log...@li... > https://lists.sourceforge.net/lists/listinfo/log4cpp-devel -- |
|
From: Thomas P. <tho...@os...> - 2002-05-14 11:05:44
|
I tried to compile on HPUX11 with gcc3.0.1 and the configure - script reported: . . . checking for int64_t... yes . . . but the compilation of PatternLayout.cpp failed: PatternLayout.cpp: In member function `std::string log4cpp::PatternLayout::doFormat(const log4cpp::LoggingEvent&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool*)': PatternLayout.cpp:128: `int64_t' undeclared (first use this function) PatternLayout.cpp:128: (Each undeclared identifier is reported only once for each function it appears in.) PatternLayout.cpp:128: parse error before `=' token PatternLayout.cpp:130: `t' undeclared (first use this function) *** Error exit code 1 I used this shellscript: #!/bin/ksh unset CFLAGS export PATH="/opt/gcc/bin:$PATH" export CXXFLAGS='-g -Wall -pedantic' ./configure --prefix=/opt --enable-shared=no make How to overcome this error ? thomas -- |
|
From: Thomas P. <tho...@os...> - 2002-05-14 10:01:02
|
Is it possible to use log4cpp with gcc3.0.1 ?
I tried to compile under Linux (SuSE 7.3) and
HPUX (gcc3.0.1 too) log4cpp-0.2.7, but it failed
(please reply to tho...@os...)
here my small wrapper script for start configure:
unset CFLAGS
export PATH="/opt/gcc/gcc-3.0.1/bin:$PATH"
export CC=/opt/gcc/gcc-3.0.1/bin/gcc
export CXX=/opt/gcc/gcc-3.0.1/bin/g++
export CXXFLAGS='-g -Wall -pedantic'
../configure --prefix=/opt
and OUTPUT from configure:
checking for a BSD compatible install... /usr/bin/ginstall -c
checking whether build environment is sane... yes
checking whether make sets ${MAKE}... yes
checking for working aclocal... found
checking for working autoconf... found
checking for working automake... found
checking for working autoheader... found
checking for working makeinfo... found
checking build system type... i586-pc-linux-gnu
checking host system type... i586-pc-linux-gnu
checking for gcc... /opt/gcc/gcc-3.0.1/bin/gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for executable suffix...
checking for object suffix... o
checking whether we are using the GNU C compiler... yes
checking whether /opt/gcc/gcc-3.0.1/bin/gcc accepts -g... yes
checking for ld used by GCC... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for /usr/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... yes
checking how to recognise dependant libraries... pass_all
checking command to parse /usr/bin/nm -B output... ok
checking how to run the C preprocessor... /opt/gcc/gcc-3.0.1/bin/gcc -E
checking for dlfcn.h... yes
checking for ranlib... ranlib
checking for strip... strip
checking for objdir... .libs
checking for /opt/gcc/gcc-3.0.1/bin/gcc option to produce PIC... -fPIC
checking if /opt/gcc/gcc-3.0.1/bin/gcc PIC flag -fPIC works... yes
checking if /opt/gcc/gcc-3.0.1/bin/gcc static flag -static works... yes
checking if /opt/gcc/gcc-3.0.1/bin/gcc supports -c -o file.o... yes
checking if /opt/gcc/gcc-3.0.1/bin/gcc supports -c -o file.lo... no
checking if /opt/gcc/gcc-3.0.1/bin/gcc supports -fno-rtti -fno-exceptions... yes
checking whether the linker (/usr/bin/ld) supports shared libraries... yes
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking if libtool supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
creating libtool
checking for a BSD compatible install... /usr/bin/ginstall -c
checking whether make sets ${MAKE}... (cached) yes
checking whether we are using the GNU C++ compiler... yes
checking whether /opt/gcc/gcc-3.0.1/bin/g++ accepts -g... yes
checking how to run the C++ preprocessor... /opt/gcc/gcc-3.0.1/bin/g++ -E
checking for unistd.h... yes
checking for io.h... no
checking for int64_t... yes
checking whether the compiler implements namespaces... yes
checking whether the compiler has stringstream... yes
checking for working snprintf... yes
checking for syslog... yes
checking for gettimeofday... yes
checking for ftime... yes
checking for strcasecmp... yes
checking for socket in -lsocket... no
checking for gethostbyname in -lnsl... yes
checking for doxygen... /usr/bin/doxygen
checking for dot... /usr/local/bin/dot
creating log4cpp-config - generic 0.2.7 of log4cpp -lnsl
configure: creating ./config.status
config.status: creating Makefile
config.status: creating log4cpp.spec
config.status: creating config/Makefile
config.status: creating doc/Makefile
config.status: creating doc/Doxyfile
config.status: creating src/Makefile
config.status: creating include/Makefile
config.status: creating include/log4cpp/Makefile
config.status: creating tests/Makefile
config.status: creating debian/Makefile
config.status: creating msvc6/Makefile
config.status: creating msvc6/log4cpp/Makefile
config.status: creating msvc6/testCategory/Makefile
config.status: creating msvc6/testNDC/Makefile
config.status: creating bcb5/Makefile
config.status: creating bcb5/log4cpp/Makefile
config.status: creating bcb5/testCategory/Makefile
config.status: creating bcb5/testConfig/Makefile
config.status: creating bcb5/testFixedContextCategory/Makefile
config.status: creating bcb5/testmain/Makefile
config.status: creating bcb5/testNDC/Makefile
config.status: creating bcb5/testPattern/Makefile
config.status: creating openvms/Makefile
config.status: creating include/config.h
config.status: include/config.h is unchanged
creating include/log4cpp/config.h - prefix LOG4CPP for include/config.h defines
/* automatically generated bcb5/ config/ debian/ doc/ include/ m4/ msvc6/ openvm
s/ src
OUTPUT from make:
..
..
..
/opt/gcc/gcc-3.0.1/bin/g++ -g -Wall -pedantic -Wall -pedantic -o .libs/testmain testmain.o ../src/.libs/liblog4cpp.so -lnsl -Wl,--rpath -Wl,/opt/lib
.../src/.libs/liblog4cpp.so: undefined reference to `std::codecvt<char, char, __mbstate_t>::id'
collect2: ld returned 1 exit status
make[1]: *** [testmain] Error 1
===========================================================================
OUTPUT FROM HP-UX:
/opt/gcc/bin/g++ -DHAVE_CONFIG_H -I. -I. -I../include -I../include -g -Wall -pedantic -Wall -pedantic -c PatternLayout.cpp -fPIC -DPIC -o PatternLayout.o
PatternLayout.cpp: In member function `std::string
log4cpp::PatternLayout::doFormat(const log4cpp::LoggingEvent&,
std::basic_string<char, std::char_traits<char>, std::allocator<char> >,
bool*)':
PatternLayout.cpp:128: `int64_t' undeclared (first use this function)
PatternLayout.cpp:128: (Each undeclared identifier is reported only once for
each function it appears in.)
PatternLayout.cpp:128: parse error before `=' token
PatternLayout.cpp:130: `t' undeclared (first use this function)
*** Error exit code 1
Stop.
*** Error exit code 1
========================================================================
Please reply to tho...@os...
--
|
|
From: Bastiaan B. <Bas...@li...> - 2002-05-03 12:38:28
|
> -----Original Message-----
> From: LECLERCQ Nicolas [mailto:nic...@so...]
> Sent: Friday, May 03, 2002 12:04 PM
> To: log...@li...
> Subject: [Log4cpp-devel] AsyncAppender and others
>=20
>=20
> Hi there,
> After a preliminary discussion with Bastiaan, I suggest to=20
> had to following features to log4cpp:
>=20
> 1 - AsyncAppender class.=20
>=20
> The log4j doc says: <The AsyncAppender lets users log events=20
> asynchronously. It uses a bounded buffer to store logging=20
> events. It will collect the events sent to it and then=20
> dispatch them to all the appenders that are attached to it.=20
> You can attach multiple appenders to an AsyncAppender. The=20
> AsyncAppender uses a separate thread to serve the events in=20
> its bounded buffer>.
>=20
> In order to write the AsyncAppender, we first need to=20
> implement an AppenderAttachable class that could be shared=20
> between the Category class and the AsyncAppender class (code=20
> factorization). All the existing code dedicated to the=20
> Appenders management (i.e. such as addAppender,=20
> removeAppender, ...) should be encapsulated in the=20
> AppenderAttachable class.
>=20
Yes, good idea. The appender stuff in Category is an ugly mess right =
now, due to object ownership issues. I feel a better way than having the =
ownsAppender data would be to have the Hierarchy always own the =
appenders or do refcounting. Suggestions are welcome.
=20
> Then we need a log4cpp::threading::Thread class. That's not a=20
> big problem but we have to choose an interface compatible=20
> with (potentially) all underlying implementation of threads.=20
> Since the need is basic, only the fundamental features are=20
> required and the Thread class interface could be something like:=20
>=20
Hmm, I don't know whether log4cpp itself needs a complete thread object =
interface. We could make the AsyncAppender a Runnable (i.e. put the main =
loop in a method named run()) and let the app worry about starting it. I =
suggest first writing the AsyncAppender that way and have the apps do =
the thread control.=20
After people have written the right code for several threading libs it's =
easier to see a minimal abstraction. (For example, I suspect we may not =
need join() or yield()).
I wouldn't want to see a large chunk of code for thread abstraction of =
thread abstraction libraries in log4cpp. It's logging library, not a =
thread library after all.
> class Thread [: private myPreferredThreadingPackage::Thread ] {
>=20
> public :
> =09
> // Define only 3 levels of priority.
> enum {
> THREAD_PRIORITY_LOW =3D 0,
> THREAD_PRIORITY_NORMAL,=09
> THREAD_PRIORITY_HIGH,=09
> } Priority;
>=20
> Thread (const char* name);
> Thread (const std::string& name);
> // Ctors
>=20
> virtual ~Thread();
> // Dtors
>=20
> int start (void);
> // Start the thread.
>=20
> virtual void run (void) =3D 0;
> // Override this method to provide functionality to your thread.
>=20
> void join (long milli_secs =3D 0);
> // Wait at most milli_secs for this thread to terminate. If=20
> milli_secs =3D=3D 0 then wait for ever.
>=20
> void setPriority (int new_prio);
> // Set the priority of this thread.
>=20
> int getPriority (void) const; =20
> // Get the priority of this thread.=20
>=20
> //... anything else? sleep, yield, ...
>=20
> };
> =20
> The last thing we need to implement the AsyncAppender class=20
> is something similar to the log4j BoundedFIFO. The STL queue=20
> is perfectly adapted to implement such a class.
>=20
Yes, this should be straightforward to implement.
>=20
>=20
> 2 - Log4Cpp class.
>=20
> The aim of the Log4Cpp class is to encapsulate the=20
> init/shutdown stuffs.=20
>=20
> class Log4Cpp {
> public:
> static int init (void);
> // Initializer. Return -1 on error, 0 otherwise.
>=20
> static void shutdown (void);
> // Cleanup everything before quitting.=20
> };
>=20
> Some packages (such as Java Threads for C++) need to be=20
> initialized to work properly. The Log4Cpp::init could be a=20
> good place for that. The Category::shutdown call could also=20
> be moved to Log4Cpp::shutdown.=20
>=20
Yes, a proper initialization and shutdown method are useful. However we =
should be careful to allow implicit calling of init() through static =
initilializers (I don't know whether this is allowed for JTC), because =
people may want to put their Category references in static variables. =
E.g.:
static log4cpp::Category =
SomeClass::_log(log4cpp::Category::getInstance("SomeClass"));
> 3 - Logger and Level classes
>=20
> Just to reflect log4j 1.2 changes.
We could simply add these as typedefs of Category and Priority for now?
Regards,
Bastiaan Bakker
LifeLine Networks bv
>=20
> I'm looking forward to your reactions.
>=20
> Nicolas
> SOLEIL project - http://www.soleil.u-psud.fr.
>=20
>=20
> _______________________________________________________________
>=20
> Have big pipes? SourceForge.net is looking for download=20
> mirrors. We supply
> the hardware. You get the recognition. Email Us:=20
> ban...@so...
> _______________________________________________
> Log4cpp-devel mailing list
> Log...@li...
> https://lists.sourceforge.net/lists/listinfo/log4cpp-devel
>=20
|
|
From: LECLERCQ N. <nic...@so...> - 2002-05-03 10:03:49
|
Hi there,
After a preliminary discussion with Bastiaan, I suggest to had to =
following features to log4cpp:
1 - AsyncAppender class.=20
The log4j doc says: <The AsyncAppender lets users log events =
asynchronously. It uses a bounded buffer to store logging events. It =
will collect the events sent to it and then dispatch them to all the =
appenders that are attached to it. You can attach multiple appenders to =
an AsyncAppender. The AsyncAppender uses a separate thread to serve the =
events in its bounded buffer>.
In order to write the AsyncAppender, we first need to implement an =
AppenderAttachable class that could be shared between the Category class =
and the AsyncAppender class (code factorization). All the existing code =
dedicated to the Appenders management (i.e. such as addAppender, =
removeAppender, ...) should be encapsulated in the AppenderAttachable =
class.
Then we need a log4cpp::threading::Thread class. That's not a big =
problem but we have to choose an interface compatible with (potentially) =
all underlying implementation of threads. Since the need is basic, only =
the fundamental features are required and the Thread class interface =
could be something like:=20
class Thread [: private myPreferredThreadingPackage::Thread ] {
public :
=09
// Define only 3 levels of priority.
enum {
THREAD_PRIORITY_LOW =3D 0,
THREAD_PRIORITY_NORMAL,=09
THREAD_PRIORITY_HIGH,=09
} Priority;
Thread (const char* name);
Thread (const std::string& name);
// Ctors
virtual ~Thread();
// Dtors
int start (void);
// Start the thread.
virtual void run (void) =3D 0;
// Override this method to provide functionality to your thread.
void join (long milli_secs =3D 0);
// Wait at most milli_secs for this thread to terminate. If milli_secs =
=3D=3D 0 then wait for ever.
void setPriority (int new_prio);
// Set the priority of this thread.
int getPriority (void) const; =20
// Get the priority of this thread.=20
//... anything else? sleep, yield, ...
};
=20
The last thing we need to implement the AsyncAppender class is something =
similar to the log4j BoundedFIFO. The STL queue is perfectly adapted to =
implement such a class.
2 - Log4Cpp class.
The aim of the Log4Cpp class is to encapsulate the init/shutdown stuffs. =
class Log4Cpp {
public:
static int init (void);
// Initializer. Return -1 on error, 0 otherwise.
static void shutdown (void);
// Cleanup everything before quitting.=20
};
Some packages (such as Java Threads for C++) need to be initialized to =
work properly. The Log4Cpp::init could be a good place for that. The =
Category::shutdown call could also be moved to Log4Cpp::shutdown.=20
3 - Logger and Level classes
Just to reflect log4j 1.2 changes.
I'm looking forward to your reactions.
Nicolas
SOLEIL project - http://www.soleil.u-psud.fr.
|
|
From: Weber, Mathias-H. 1. S-WF-R. <Mat...@de...> - 2002-04-10 07:25:02
|
Hi,
has anybody ever tried to compile 0.3.1 on msvc6? I get lots off error
messages starting with
fileappender.hh(32) : error C2629: unexpected
'class log4cpp::FileAppender ('
Compiling of 0.2.7 went through without a single complaint.
Any hint is appreciated.
Mathias
|
|
From: Bastiaan B. <bas...@li...> - 2002-04-04 20:57:21
|
Hi all, I've put release 0.3.1 on SourceForge. The update consist mainly of bugs fixed since 0.3.0 and the addition of the RollingFileAppender contributed by Paulo Pizarro. This releases has been dist-checked on RH Linux 7.2 only, as it is still a work in progress. If it is broken on your platform please fix and/or report. Cheers, Bastiaan Bakker |
|
From: Bastiaan B. <bas...@li...> - 2002-04-04 19:46:45
|
Hi,
Yes, I see the stupid bug now, a misplaced '}'. Thanks for reporting it!
Bastiaan
Jak...@no... wrote:
>Hi,
>
>Yes, now I see that bug description.
>But I have taken most current version from cvs ...
>it is commented "fix invalidated iterator usage. (bug #527467)"
>and it is 1.34.
>
>It still causes problem int13 ;-)
>
>problem is with delete (*i) and then doing i++.
>other problem is that _ownsAppender.clear() and _appender.clear()
>are put in for loop. So they are run in thirst iteration ...
>In bug description they are run after for, which make sense.
>
>
>
> void Category::removeAllAppenders() {
> threading::ScopedLock lock(_appenderSetMutex);
> {
> for (AppenderSet::iterator i = _appender.begin();
> i != _appender.end(); i++) {
> // found
> OwnsAppenderMap::iterator i2;
> if (ownsAppender(*i, i2)) {
> delete (*i);
> }
>
> _ownsAppender.clear();
> _appender.clear();
> }
> }
> }
>
>
>cheers,
>--jakub
>
>
>
>
>
>>-----Original Message-----
>>From: ext Bastiaan Bakker [ <mailto:bas...@li...> mailto:bas...@li...]
>>Sent: 2. april 2002 22:48
>>To: Szymanski Jakub (NET/Copenhagen)
>>Cc: log...@li...
>>Subject: Re: [Log4cpp-devel] problem with Category::removeAllAppenders
>>
>>
>>Hi Jakub,
>>
>>This is a known bug (#527467) and a fix has been committed to
>>CVS (HEAD
>>branch). I intend to release 0.3.1 (containing the fix) later
>>this week.
>>
>>Thanks,
>>
>>Bastiaan Bakker
>>LifeLine Networks bv
>>
>>Jak...@no... wrote:
>>
>>>Hi,
>>>
>>>I run log4cpp on VC6.0 SP5. Version 0.30 + Category and Appender
>>>
>>>from CVS.
>>
>>>I have problem with Category::removeAllAppenders.
>>>Version 1.34 (most current in CVS).
>>>
>>>When I run testCategory (or my simple tests) I have
>>>Unhandled exception Access Violation
>>>with stack trace:
>>>[ ....cut ...]
>>>log4cpp::Category::removeAllAppenders() line 152 + 16 bytes
>>>main(int 1, char * * 0x004417d0) line 144 + 13 bytes
>>>mainCRTStartup() line 338 + 17 bytes
>>>KERNEL32! 77f1ba06()
>>>
>>>
>>>There is:
>>> void Category::removeAllAppenders() {
>>> threading::ScopedLock lock(_appenderSetMutex);
>>> {
>>> for (AppenderSet::iterator i = _appender.begin();
>>> i != _appender.end(); i++) {
>>> // found
>>> OwnsAppenderMap::iterator i2;
>>> if (ownsAppender(*i, i2)) {
>>> delete (*i);
>>> }
>>>
>>> _ownsAppender.clear();
>>> _appender.clear();
>>> }
>>> }
>>> }
>>>
>>>
>>>Problem is with delete of current iterator. Acording to specs and
>>>good comment in Appender.cpp you can't use iterator after
>>>
>>deleteing it
>>
>>>[
>>>Appender::_deleteAllAppenders()
>>>--- cut ---
>>> i++; // increment iterator before delete or
>>>
>>iterator will be invalid.
>>
>>> delete (app);
>>>]
>>>
>>>
>>>So I changed code to:
>>> void Category::removeAllAppenders() {
>>> threading::ScopedLock lock(_appenderSetMutex);
>>> {
>>> Appender* app;
>>> AppenderSet::iterator i2;
>>>
>>> for (AppenderSet::iterator i = _appender.begin();
>>> i != _appender.end(); ) {
>>> // found
>>> app = *i;
>>> i2 = i;
>>> i++;
>>>
>>> OwnsAppenderMap::iterator i3;
>>> if (ownsAppender(*i2, i3)) {
>>> delete app;
>>> }
>>> }
>>>
>>> _ownsAppender.clear();
>>> _appender.clear();
>>> }
>>> }
>>>
>>>and it passes testCategory test.
>>>
>>>cheers,
>>>--jakub
>>>
>>>
>>>
>>>
>>>
>>>
>>>_______________________________________________
>>>Log4cpp-devel mailing list
>>>Log...@li...
>>> <https://lists.sourceforge.net/lists/listinfo/log4cpp-devel> https://lists.sourceforge.net/lists/listinfo/log4cpp-devel
>>>
>>
>>
>
>
|
|
From: <Jak...@no...> - 2002-04-03 15:53:21
|
Hi,
Yes, now I see that bug description.
But I have taken most current version from cvs ...
it is commented "fix invalidated iterator usage. (bug #527467)"
and it is 1.34.
It still causes problem int13 ;-)
problem is with delete (*i) and then doing i++.
other problem is that _ownsAppender.clear() and _appender.clear()
are put in for loop. So they are run in thirst iteration ...
In bug description they are run after for, which make sense.
void Category::removeAllAppenders() {
threading::ScopedLock lock(_appenderSetMutex);
{
for (AppenderSet::iterator i =3D _appender.begin();
i !=3D _appender.end(); i++) {
// found
OwnsAppenderMap::iterator i2;
if (ownsAppender(*i, i2)) {
delete (*i);
}
=20
_ownsAppender.clear();
_appender.clear();
}
}
}
cheers,
--jakub
=20
=20
> -----Original Message-----
> From: ext Bastiaan Bakker [ <mailto:bas...@li...> =
mailto:bas...@li...]
> Sent: 2. april 2002 22:48
> To: Szymanski Jakub (NET/Copenhagen)
> Cc: log...@li...
> Subject: Re: [Log4cpp-devel] problem with Category::removeAllAppenders
>
>
> Hi Jakub,
>
> This is a known bug (#527467) and a fix has been committed to
> CVS (HEAD
> branch). I intend to release 0.3.1 (containing the fix) later
> this week.
>
> Thanks,
>
> Bastiaan Bakker
> LifeLine Networks bv
>
> Jak...@no... wrote:
>
> >Hi,
> >
> >I run log4cpp on VC6.0 SP5. Version 0.30 + Category and Appender
> >from CVS.
> >
> >I have problem with Category::removeAllAppenders.
> >Version 1.34 (most current in CVS).
> >
> >When I run testCategory (or my simple tests) I have
> >Unhandled exception Access Violation
> >with stack trace:
> >[ ....cut ...]
> >log4cpp::Category::removeAllAppenders() line 152 + 16 bytes
> >main(int 1, char * * 0x004417d0) line 144 + 13 bytes
> >mainCRTStartup() line 338 + 17 bytes
> >KERNEL32! 77f1ba06()
> >
> >
> >There is:
> > void Category::removeAllAppenders() {
> > threading::ScopedLock lock(_appenderSetMutex);
> > {
> > for (AppenderSet::iterator i =3D _appender.begin();
> > i !=3D _appender.end(); i++) {
> > // found
> > OwnsAppenderMap::iterator i2;
> > if (ownsAppender(*i, i2)) {
> > delete (*i);
> > }
> > =20
> > _ownsAppender.clear();
> > _appender.clear();
> > }
> > }
> > }
> >
> >
> >Problem is with delete of current iterator. Acording to specs and
> >good comment in Appender.cpp you can't use iterator after
> deleteing it
> >[
> > Appender::_deleteAllAppenders()
> > --- cut ---
> > i++; // increment iterator before delete or
> iterator will be invalid.
> > delete (app);
> >]
> >
> >
> >So I changed code to:
> > void Category::removeAllAppenders() {
> > threading::ScopedLock lock(_appenderSetMutex);
> > {
> > Appender* app;
> > AppenderSet::iterator i2;
> >
> > for (AppenderSet::iterator i =3D _appender.begin();
> > i !=3D _appender.end(); ) {
> > // found
> > app =3D *i;
> > i2 =3D i;
> > i++;
> >
> > OwnsAppenderMap::iterator i3;
> > if (ownsAppender(*i2, i3)) {
> > delete app;
> > }
> > }
> > =20
> > _ownsAppender.clear();
> > _appender.clear();
> > }
> > }
> >
> >and it passes testCategory test.
> >
> >cheers,
> >--jakub
> >
> >
> >
> >
> >
> >
> >_______________________________________________
> >Log4cpp-devel mailing list
> >Log...@li...
> > <https://lists.sourceforge.net/lists/listinfo/log4cpp-devel> =
https://lists.sourceforge.net/lists/listinfo/log4cpp-devel
> >
>
>
>
>=20
|
|
From: Bastiaan B. <bas...@li...> - 2002-04-02 21:24:31
|
Hi Jakub,
This is a known bug (#527467) and a fix has been committed to CVS (HEAD
branch). I intend to release 0.3.1 (containing the fix) later this week.
Thanks,
Bastiaan Bakker
LifeLine Networks bv
Jak...@no... wrote:
>Hi,
>
>I run log4cpp on VC6.0 SP5. Version 0.30 + Category and Appender
>from CVS.
>
>I have problem with Category::removeAllAppenders.
>Version 1.34 (most current in CVS).
>
>When I run testCategory (or my simple tests) I have
>Unhandled exception Access Violation
>with stack trace:
>[ ....cut ...]
>log4cpp::Category::removeAllAppenders() line 152 + 16 bytes
>main(int 1, char * * 0x004417d0) line 144 + 13 bytes
>mainCRTStartup() line 338 + 17 bytes
>KERNEL32! 77f1ba06()
>
>
>There is:
> void Category::removeAllAppenders() {
> threading::ScopedLock lock(_appenderSetMutex);
> {
> for (AppenderSet::iterator i = _appender.begin();
> i != _appender.end(); i++) {
> // found
> OwnsAppenderMap::iterator i2;
> if (ownsAppender(*i, i2)) {
> delete (*i);
> }
>
> _ownsAppender.clear();
> _appender.clear();
> }
> }
> }
>
>
>Problem is with delete of current iterator. Acording to specs and
>good comment in Appender.cpp you can't use iterator after deleteing it
>[
> Appender::_deleteAllAppenders()
> --- cut ---
> i++; // increment iterator before delete or iterator will be invalid.
> delete (app);
>]
>
>
>So I changed code to:
> void Category::removeAllAppenders() {
> threading::ScopedLock lock(_appenderSetMutex);
> {
> Appender* app;
> AppenderSet::iterator i2;
>
> for (AppenderSet::iterator i = _appender.begin();
> i != _appender.end(); ) {
> // found
> app = *i;
> i2 = i;
> i++;
>
> OwnsAppenderMap::iterator i3;
> if (ownsAppender(*i2, i3)) {
> delete app;
> }
> }
>
> _ownsAppender.clear();
> _appender.clear();
> }
> }
>
>and it passes testCategory test.
>
>cheers,
>--jakub
>
>
>
>
>
>
>_______________________________________________
>Log4cpp-devel mailing list
>Log...@li...
>https://lists.sourceforge.net/lists/listinfo/log4cpp-devel
>
|
|
From: <Jak...@no...> - 2002-04-02 16:39:38
|
Hi,
I run log4cpp on VC6.0 SP5. Version 0.30 + Category and Appender
from CVS.
I have problem with Category::removeAllAppenders.
Version 1.34 (most current in CVS).
When I run testCategory (or my simple tests) I have
Unhandled exception Access Violation
with stack trace:
[ ....cut ...]
log4cpp::Category::removeAllAppenders() line 152 + 16 bytes
main(int 1, char * * 0x004417d0) line 144 + 13 bytes
mainCRTStartup() line 338 + 17 bytes
KERNEL32! 77f1ba06()
There is:
void Category::removeAllAppenders() {
threading::ScopedLock lock(_appenderSetMutex);
{
for (AppenderSet::iterator i =3D _appender.begin();
i !=3D _appender.end(); i++) {
// found
OwnsAppenderMap::iterator i2;
if (ownsAppender(*i, i2)) {
delete (*i);
}
=20
_ownsAppender.clear();
_appender.clear();
}
}
}
Problem is with delete of current iterator. Acording to specs and
good comment in Appender.cpp you can't use iterator after deleteing it
[
Appender::_deleteAllAppenders()=20
--- cut ---
i++; // increment iterator before delete or iterator will be =
invalid.
delete (app);
]
So I changed code to:
void Category::removeAllAppenders() {
threading::ScopedLock lock(_appenderSetMutex);
{
Appender* app;
AppenderSet::iterator i2;
for (AppenderSet::iterator i =3D _appender.begin();
i !=3D _appender.end(); ) {
// found
app =3D *i;
i2 =3D i;
i++;
OwnsAppenderMap::iterator i3;
if (ownsAppender(*i2, i3)) {
delete app;
}
}
=20
_ownsAppender.clear();
_appender.clear();
}
}
and it passes testCategory test.
cheers,
--jakub
|
|
From: Bastiaan B. <Bas...@li...> - 2002-03-07 13:43:08
|
Hi Paulo, I welcome support for any thread library to make log4cpp MT safe. Given = the currently limited MT primitive requirements of log4cpp it should be = easy to write an adapter class for GNU Common C++ threading support, = just like the one for omniORB or Boost.=20 However I do want to make sure that compiling log4cpp with any = particular thread library is optional: as soon as log4cpp depends on a = specific library you start to shut out people who cannot or do not want = to use that library.=20 So I would like to invite you to help improve log4cpp's MT support, but = please do it in a way that a simple '--with-gnu-common-cpp-threads' = switch will enable or disable it. Thanks, Bastiaan Bakker =20 > -----Original Message----- > From: Paulo Pizarro [mailto:pau...@di...] > Sent: Thursday, March 07, 2002 2:25 PM > To: log...@li... > Subject: [Log4cpp-devel] Suggestion: Thread Library >=20 >=20 > Hello Bastiaan, >=20 > What do you think about GNU Common C++ library? >=20 > GNU Common C++ offers support and portable classes for=20 > threading and sockets=20 > for both UNIX (Posix systems with "pthread" support) and the=20 > Windows "Win32"=20 > API. GNU Common C++ uses extensive autoconf macro sets for automatic=20 > detection of various levels of "pthread compliance" in your=20 > target platform=20 > and attempts to adjust itself appropriately. GNU Common C++=20 > has been tested=20 > from time to time with GNU/Linux, FreeBSD, Solaris, and DEC=20 > Tru64 Unix.=20 > Recent work has also been done to help support HP/UX.=20 >=20 > While GNU Common C++ is not directly related to GNU portable=20 > threading (GNU=20 > Pth), it should work with the Pth "pthread emulation" library=20 > at present.=20 > Work is planned to make GNU Common C++ directly support GNU Pth.=20 >=20 > Cheers, >=20 > Paulo Pizarro >=20 > _______________________________________________ > Log4cpp-devel mailing list > Log...@li... > https://lists.sourceforge.net/lists/listinfo/log4cpp-devel >=20 |
|
From: Paulo P. <pau...@di...> - 2002-03-07 13:20:23
|
Hello Bastiaan, What do you think about GNU Common C++ library? GNU Common C++ offers support and portable classes for threading and sock= ets=20 for both UNIX (Posix systems with "pthread" support) and the Windows "Win= 32"=20 API. GNU Common C++ uses extensive autoconf macro sets for automatic=20 detection of various levels of "pthread compliance" in your target platfo= rm=20 and attempts to adjust itself appropriately. GNU Common C++ has been test= ed=20 from time to time with GNU/Linux, FreeBSD, Solaris, and DEC Tru64 Unix.=20 Recent work has also been done to help support HP/UX.=20 While GNU Common C++ is not directly related to GNU portable threading (G= NU=20 Pth), it should work with the Pth "pthread emulation" library at present.= =20 Work is planned to make GNU Common C++ directly support GNU Pth.=20 Cheers, Paulo Pizarro |
|
From: Bastiaan B. <bas...@li...> - 2002-02-18 23:16:07
|
Hi everybody, I put log4cpp 0.3.0 on SF, which is the first release from the new 'development' branch. It introduces the first steps for mulithreading support. This release uses omniORB4s omniThread thread abstraction library, mainly because at LifeLine we use log4cpp mostly in omniORB bases CORBA applications. The used set of MT primitives is rather minimal: a (non recursive) mutex: log4cpp::threading::Mutex a scoped lock for the mutex: log4cpp::threading::ScopedLock a holder for thread local objects: log4cpp::threading::ThreadLocalDataHolder<typename T> It should be rather straightforward to base MT support on other threading libraries than omniThreads. A start has been made to implement this for Boosts threads, but this has not been integrated yet (help wanted!). Implementations for other libraries are welcome too. TODOs: * update of MSVC6 project files * update of BCB5 project files * addition other plaforms than Linux and Solaris to BB_CHECK_OMNITHREADS.m4 * more documentation (as always) * tests * implementations for other threading libraries, e.g. Boost, Win32 native, POSIX. Don't be shy if you can/want to help! :-) Cheers, Bastiaan Bakker |
|
From: Bastiaan B. <Bas...@li...> - 2002-02-08 10:53:31
|
Hi, =20 Last night I created a branch 'BRANCH_MAINT_0_2' in the CVS repository. = This is intended for maintainance of all future 0.2.x releases. The HEAD is now for development of 0.3 and beyond. This means that new = features and fixes won't show up in 0.2.x releases anymore, unless = explicitly merged.=20 If you have CVS write access, please stay on the HEAD branch as much as = possible and commit fixes to 0.2.x only after testing on HEAD. The reason for creating this branch now, is that I've finally started = committing code for multithreading support (see = include/log4cpp/threading) and MT support is definitely a feature that = belongs in 0.3 and not 0.2. Hopefully 0.3 matures quickly enough that we won't need to touch the 0.2 = branch often anymore. =20 Cheers, =20 Bastiaan Bakker LifeLine Networks bv =20 =20 |
|
From: Tony C. <dra...@as...> - 2002-02-06 09:29:11
|
Hi, A correction to my earlier's posting. fsync() actually returns only after the I/O completes. There's an alternative sync() which returns before the I/O completes. I think O_SYNC and fsync() should be pretty much the same, with fsync() doing the file I/O synchronization explicitely. Tony Bastiaan Bakker wrote: > > Tony Cheung wrote: > > >Hi Steve and others, > > > >First, the changes (if made) will be applied to OpenVMS compilations > >only. I am not sure if other platforms require the changes. > > > >For the disk caching, in order allow other users to "tail -f" on the > >application log real-time. The OS needs to flush the changes to the disk > >after each line of the logging. The caching should only be applicable to > >within a single line of logging, otherwise there would be a delay for > >the last few lines of logging to show up. BTW, the fsync() returns > >before the I/O completes. > > > >I agree it's a tradeoff between real-time feedback or better disk > >performance. > > > >Ideas? > > > >Tony > > > > This feature may be more generally useful as well. In combination with a > write cache disabled disk it can provide 'extra safe' logging. Of course > log4j/log4cpp are still 'non reliable, best effort' loggers, but this > may help a bit. > So I suggest to add this as a runtime option to FileAppender. Now for > the implementation, doe anyone have a good opion on whether to use > fdatasync() or the O_SYNC open flag? > > Bastiaan |
|
From: Bastiaan B. <bas...@li...> - 2002-02-04 21:19:46
|
Tony Cheung wrote: >Hi Steve and others, > >First, the changes (if made) will be applied to OpenVMS compilations >only. I am not sure if other platforms require the changes. > >For the disk caching, in order allow other users to "tail -f" on the >application log real-time. The OS needs to flush the changes to the disk >after each line of the logging. The caching should only be applicable to >within a single line of logging, otherwise there would be a delay for >the last few lines of logging to show up. BTW, the fsync() returns >before the I/O completes. > >I agree it's a tradeoff between real-time feedback or better disk >performance. > >Ideas? > >Tony > This feature may be more generally useful as well. In combination with a write cache disabled disk it can provide 'extra safe' logging. Of course log4j/log4cpp are still 'non reliable, best effort' loggers, but this may help a bit. So I suggest to add this as a runtime option to FileAppender. Now for the implementation, doe anyone have a good opion on whether to use fdatasync() or the O_SYNC open flag? Bastiaan |
|
From: Bastiaan B. <Bas...@li...> - 2002-02-04 10:01:01
|
> -----Original Message----- > From: hel...@ed...=20 > [mailto:hel...@ed...] > Sent: Friday, February 01, 2002 9:08 PM > To: Bastiaan Bakker; log...@li... > Subject: RE: [Log4cpp-devel] Compiling with sun CC >=20 >=20 > Yeah, that seems to do the trick! >=20 > Perhaps this could go down into a FAQ or something for > other people to take advantage of? >=20 Yes, it definitely should, but I've been to busy/lazy to write one. > First test ran OK, but the second came up with: >=20 > CC -DHAVE_CONFIG_H -I. -I. -I../include -I../include -g -c=20 > Clock.cpp > "Clock.cpp", line 47: Error: endl is not defined. > 1 Error(s) detected. >=20 > some std:: missing, perhaps. >=20 Hmm, you're right. I thought I got rid of all of them... > We are thinking about using this library in our software. Has > anyone run purify on this code to check for memory leaks? Any > routine on that before you ship new releases? >=20 Well, I don't have access to Purify myself, so it's not part of the = release routine. Incidentally other people have checked with Purify, = BoundsChecker or similar tools. If you like to see this happen within = the release regime, please volunteer to run Purify and report on the = release candidates so any leaks can be fixed before the final release... =20 > How about connection to the Lumbermill GUI/Log server? I see > that it's missing a SocketAppender class, so this probably=20 > haven't been tested? Should be easy to add such a class, though? >=20 AFAIK this has not been tried. However most of the work here is not in = the socket related stuff (for *nix machines you can already send logs = through a socket using FileAppender and a socket file descriptor), but = in writing the data conformant to the Java serialization API. But maybe = it turns out to be a very simple format, or maybe someone has created a = nice library to do it for us, I dunno. You're very welcome to contribute = :-) > Best regards, > Helge Fredriksen Cheers, Bastiaan Bakker |
|
From: Tony C. <dra...@as...> - 2002-02-04 07:07:44
|
Hi Steve and others, First, the changes (if made) will be applied to OpenVMS compilations only. I am not sure if other platforms require the changes. For the disk caching, in order allow other users to "tail -f" on the application log real-time. The OS needs to flush the changes to the disk after each line of the logging. The caching should only be applicable to within a single line of logging, otherwise there would be a delay for the last few lines of logging to show up. BTW, the fsync() returns before the I/O completes. I agree it's a tradeoff between real-time feedback or better disk performance. Ideas? Tony > I am not exactly sure how the OpenVMS file system works, but most file > systems cache writes in memory before flushing them to disk. This greatly > increases write performance. I would not (at least in the default case), put > a fflush or fsync in the code. > > Perhaps an additional method which would allow the application to flush > write to the disk. > > Steve Ostlind > PentaSafe Security Technologies > 713.860.9664 > > > -----Original Message----- > > From: Tony Cheung [SMTP:dra...@as...] > > Sent: Friday, February 01, 2002 4:08 AM > > To: log...@li... > > Subject: [Log4cpp-devel] Log4cpp on OpenVMS > > > > Hi All, > > > > I'm not sure how many are using the OpenVMS platform here, but I am > > responsible for the OpenVMS support in log4cpp. (I'm rather new to > > OpenVMS myself, but I am now building a C/C++ project on it) > > > > I've just found out that in current log4cpp, while the application is > > logging to a file, other users are not able to see the log file. > > > > After some investigations, I've found we could open the log file in > > shared mode and in the record mode file format (both OpenVMS specific), > > so that other users could "tail" on the log file. > > > > fsync() should also be called after evey write, so that other users > > could see the real-time changes. > > > > Please let me know if it's a good idea to make the changes into CVS, so > > that I would go ahead and do so. > > > > Tony > > > > P.S. I have subscribed to this mailing list, but somehow I am not > > receiving anything from it. Hope I am the only one having this problem. > > > > _______________________________________________ > > Log4cpp-devel mailing list > > Log...@li... > > https://lists.sourceforge.net/lists/listinfo/log4cpp-devel |
|
From: <hel...@ed...> - 2002-02-01 20:07:57
|
Yeah, that seems to do the trick! Perhaps this could go down into a FAQ or something for other people to take advantage of? First test ran OK, but the second came up with: CC -DHAVE_CONFIG_H -I. -I. -I../include -I../include -g -c Clock.cpp "Clock.cpp", line 47: Error: endl is not defined. 1 Error(s) detected. some std:: missing, perhaps. We are thinking about using this library in our software. Has anyone run purify on this code to check for memory leaks? Any routine on that before you ship new releases? How about connection to the Lumbermill GUI/Log server? I see that it's missing a SocketAppender class, so this probably=20 haven't been tested? Should be easy to add such a class, though? Best regards, Helge Fredriksen -----Original Message----- From: Bastiaan Bakker [mailto:Bas...@li...] Sent: 1. februar 2002 15:23 To: Fredriksen Helge (4tel); log...@li... Subject: RE: [Log4cpp-devel] Compiling with sun CC Hmm, this looks suspiciously like the sun CC compile problems discussed earlier on this list. Does=20 CC=3DCC CXX=3DCC LD=3D"CC -KPIC" ./configure --disable-static=20 work? Cheers, Bastiaan > -----Original Message----- > From: hel...@ed...=20 > [mailto:hel...@ed...] > Sent: Friday, February 01, 2002 12:07 PM > To: log...@li... > Subject: [Log4cpp-devel] Compiling with sun CC >=20 >=20 > Hay there! >=20 > I've just been trying to compile log4cpp with Sun CC native=20 > compiler (Forte > 6.2). > I was not very successful using the configure program for=20 > this: Giving the=20 > arguments "CC=3DCC CXX=3DCC ./configure" produced Makefiles OK,=20 > the lib were > produced, but when I tried to link it to one of the test=20 > executables, lot's > of symbols > didn't get recognized.=20 >=20 > However, I made my own Makefiles which worked fine, I'm=20 > sharing them with > you in case you want to incorporate this stuff into your make=20 > regime... >=20 > <<Makefile.src>> <<Makefile.test>>=20 > Best regards, > Helge Fredriksen >=20 |
|
From: Steve O. <s.o...@pe...> - 2002-02-01 14:47:09
|
I am not exactly sure how the OpenVMS file system works, but most file systems cache writes in memory before flushing them to disk. This greatly increases write performance. I would not (at least in the default case), put a fflush or fsync in the code. Perhaps an additional method which would allow the application to flush write to the disk. Steve Ostlind PentaSafe Security Technologies 713.860.9664 > -----Original Message----- > From: Tony Cheung [SMTP:dra...@as...] > Sent: Friday, February 01, 2002 4:08 AM > To: log...@li... > Subject: [Log4cpp-devel] Log4cpp on OpenVMS > > Hi All, > > I'm not sure how many are using the OpenVMS platform here, but I am > responsible for the OpenVMS support in log4cpp. (I'm rather new to > OpenVMS myself, but I am now building a C/C++ project on it) > > I've just found out that in current log4cpp, while the application is > logging to a file, other users are not able to see the log file. > > After some investigations, I've found we could open the log file in > shared mode and in the record mode file format (both OpenVMS specific), > so that other users could "tail" on the log file. > > fsync() should also be called after evey write, so that other users > could see the real-time changes. > > Please let me know if it's a good idea to make the changes into CVS, so > that I would go ahead and do so. > > Tony > > P.S. I have subscribed to this mailing list, but somehow I am not > receiving anything from it. Hope I am the only one having this problem. > > _______________________________________________ > Log4cpp-devel mailing list > Log...@li... > https://lists.sourceforge.net/lists/listinfo/log4cpp-devel |
|
From: Bastiaan B. <Bas...@li...> - 2002-02-01 14:23:03
|
Hmm, this looks suspiciously like the sun CC compile problems discussed = earlier on this list. Does=20 CC=3DCC CXX=3DCC LD=3D"CC -KPIC" ./configure --disable-static=20 work? Cheers, Bastiaan > -----Original Message----- > From: hel...@ed...=20 > [mailto:hel...@ed...] > Sent: Friday, February 01, 2002 12:07 PM > To: log...@li... > Subject: [Log4cpp-devel] Compiling with sun CC >=20 >=20 > Hay there! >=20 > I've just been trying to compile log4cpp with Sun CC native=20 > compiler (Forte > 6.2). > I was not very successful using the configure program for=20 > this: Giving the=20 > arguments "CC=3DCC CXX=3DCC ./configure" produced Makefiles OK,=20 > the lib were > produced, but when I tried to link it to one of the test=20 > executables, lot's > of symbols > didn't get recognized.=20 >=20 > However, I made my own Makefiles which worked fine, I'm=20 > sharing them with > you in case you want to incorporate this stuff into your make=20 > regime... >=20 > <<Makefile.src>> <<Makefile.test>>=20 > Best regards, > Helge Fredriksen >=20 |
|
From: <hel...@ed...> - 2002-02-01 11:06:49
|
Hay there! I've just been trying to compile log4cpp with Sun CC native compiler = (Forte 6.2). I was not very successful using the configure program for this: Giving = the=20 arguments "CC=3DCC CXX=3DCC ./configure" produced Makefiles OK, the lib = were produced, but when I tried to link it to one of the test executables, = lot's of symbols didn't get recognized.=20 However, I made my own Makefiles which worked fine, I'm sharing them = with you in case you want to incorporate this stuff into your make regime... <<Makefile.src>> <<Makefile.test>>=20 Best regards, Helge Fredriksen |
|
From: Tony C. <dra...@as...> - 2002-02-01 10:08:46
|
Hi All, I'm not sure how many are using the OpenVMS platform here, but I am responsible for the OpenVMS support in log4cpp. (I'm rather new to OpenVMS myself, but I am now building a C/C++ project on it) I've just found out that in current log4cpp, while the application is logging to a file, other users are not able to see the log file. After some investigations, I've found we could open the log file in shared mode and in the record mode file format (both OpenVMS specific), so that other users could "tail" on the log file. fsync() should also be called after evey write, so that other users could see the real-time changes. Please let me know if it's a good idea to make the changes into CVS, so that I would go ahead and do so. Tony P.S. I have subscribed to this mailing list, but somehow I am not receiving anything from it. Hope I am the only one having this problem. |