|
From: ToonXW <tx...@gm...> - 2018-08-31 06:59:26
|
I have been trying to route all event logs to one daily rolling log file,
however it is unclear what is going wrong. I verified that quickfixj picked
up the log4j.properties file (by forcing an exception) and also confirmed
that the target log file was created post startup. Please advise.
*SessionSettings:*
SLF4JLogEventCategory=quickfixj.event
SLF4JLogIncomingMessageCategory=quickfixj.incoming
SLF4JLogOutgoingMessageCategory=quickfixj.outgoing
SLF4JLogPrependSessionID=Y
SLF4JLogHeartbeats=Y
*When building ThreadedSocketInitiator:*
LogFactory logFactory = new SLF4JLogFactory(sessionSettings);
*log4j.properties:*
# Root logger option
log4j.rootLogger=DEBUG, core
# Write to log files, support date rolling.
log4j.appender.core=org.apache.log4j.DailyRollingFileAppender
log4j.appender.core.Append=true
log4j.appender.core.File=./logs/system_debug.log
log4j.appender.core.DatePattern='.'yyyy-MM-dd
log4j.appender.core.layout=org.apache.log4j.PatternLayout
log4j.appender.core.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS}
%-5p %c{1}:%L - %m%n
# Quickfixj appender(s): quickfixj.event / quickfixj.incoming /
quickfixj.outgoing
log4j.logger.quickfixj.event=DEBUG, quickfixEvents
log4j.additivity.quickfixj.event=false;
log4j.appender.quickfixEvents=org.apache.log4j.DailyRollingFileAppender
log4j.appender.quickfixEvents.Append=true
log4j.appender.quickfixEvents.File=./logs/quickfix.log
log4j.appender.quickfixEvents.DatePattern='.'yyyy-MM-dd
log4j.appender.quickfixEvents.layout=org.apache.log4j.PatternLayout
log4j.appender.quickfixEvents.layout.ConversionPattern=%d{yyyy-MM-dd
HH:mm:ss.SSS} %-5p %c{1}:%L - %m%n
--
Sent from: http://quickfix-j.364392.n2.nabble.com/
|
|
From: Christoph J. <chr...@ma...> - 2018-08-31 07:31:27
|
So you are saying the file ./logs/quickfix.log gets created but with no content? No messages and no events? The SLF4J settings you are passing are the default ones as far as I can see. What happens if you omit them? I have just seen there is an undocumented setting SLF4JLogErrorEventCategory which defaults to "quickfixj.errorEvent". What happens if you add that to your settings? IMHO it can only be a minor config error since this feature is used by many people. Which QFJ version are you using BTW? Chris. On 31/08/18 08:59, ToonXW wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > I have been trying to route all event logs to one daily rolling log file, > however it is unclear what is going wrong. I verified that quickfixj picked > up the log4j.properties file (by forcing an exception) and also confirmed > that the target log file was created post startup. Please advise. > > *SessionSettings:* > SLF4JLogEventCategory=quickfixj.event > SLF4JLogIncomingMessageCategory=quickfixj.incoming > SLF4JLogOutgoingMessageCategory=quickfixj.outgoing > SLF4JLogPrependSessionID=Y > SLF4JLogHeartbeats=Y > > *When building ThreadedSocketInitiator:* > LogFactory logFactory = new SLF4JLogFactory(sessionSettings); > > *log4j.properties:* > # Root logger option > log4j.rootLogger=DEBUG, core > # Write to log files, support date rolling. > log4j.appender.core=org.apache.log4j.DailyRollingFileAppender > log4j.appender.core.Append=true > log4j.appender.core.File=./logs/system_debug.log > log4j.appender.core.DatePattern='.'yyyy-MM-dd > log4j.appender.core.layout=org.apache.log4j.PatternLayout > log4j.appender.core.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} > %-5p %c{1}:%L - %m%n > # Quickfixj appender(s): quickfixj.event / quickfixj.incoming / > quickfixj.outgoing > log4j.logger.quickfixj.event=DEBUG, quickfixEvents > log4j.additivity.quickfixj.event=false; > log4j.appender.quickfixEvents=org.apache.log4j.DailyRollingFileAppender > log4j.appender.quickfixEvents.Append=true > log4j.appender.quickfixEvents.File=./logs/quickfix.log > log4j.appender.quickfixEvents.DatePattern='.'yyyy-MM-dd > log4j.appender.quickfixEvents.layout=org.apache.log4j.PatternLayout > log4j.appender.quickfixEvents.layout.ConversionPattern=%d{yyyy-MM-dd > HH:mm:ss.SSS} %-5p %c{1}:%L - %m%n > > > > -- > Sent from: http://quickfix-j.364392.n2.nabble.com/ > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users -- Christoph John Software Engineering T +49 241 557080-28 chr...@ma... MACD GmbH Oppenhoffallee 103 52066 Aachen, Germany www.macd.com Amtsgericht Aachen: HRB 8151 Ust.-Id: DE 813021663 Geschäftsführer: George Macdonald |
|
From: Xiau W. T. <tx...@gm...> - 2018-08-31 08:06:38
|
Indeed that is correct. The logfile is created but permanently empty. I have: 1. Removed all the default slf4j configuration from session settings 2. Added appender for log4j.logger.quickfixj.errorEvent Files are created, but empty. I redirect all the screen logs from java execute line to a dumpfile and I can see all quickfixj events and msg logs generated without any WARN or ERROR. Turning on additivity will not make a copy in system_debug.log as well. Version2.1 is the one used. On Fri, 31 Aug 2018, 3:31 pm Christoph John, <chr...@ma...> wrote: > So you are saying the file ./logs/quickfix.log gets created but with no > content? No messages and no events? > The SLF4J settings you are passing are the default ones as far as I can > see. What happens if you omit them? > I have just seen there is an undocumented setting > SLF4JLogErrorEventCategory which defaults to "quickfixj.errorEvent". What > happens if you add that to your settings? > > IMHO it can only be a minor config error since this feature is used by > many people. Which QFJ version are you using BTW? > > Chris. > > On 31/08/18 08:59, ToonXW wrote: > > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > I have been trying to route all event logs to one daily rolling log file, > however it is unclear what is going wrong. I verified that quickfixj picked > up the log4j.properties file (by forcing an exception) and also confirmed > that the target log file was created post startup. Please advise. > > *SessionSettings:* > SLF4JLogEventCategory=quickfixj.event > SLF4JLogIncomingMessageCategory=quickfixj.incoming > SLF4JLogOutgoingMessageCategory=quickfixj.outgoing > SLF4JLogPrependSessionID=Y > SLF4JLogHeartbeats=Y > > *When building ThreadedSocketInitiator:* > LogFactory logFactory = new SLF4JLogFactory(sessionSettings); > > *log4j.properties:* > # Root logger option > log4j.rootLogger=DEBUG, core > # Write to log files, support date rolling. > log4j.appender.core=org.apache.log4j.DailyRollingFileAppender > log4j.appender.core.Append=true > log4j.appender.core.File=./logs/system_debug.log > log4j.appender.core.DatePattern='.'yyyy-MM-dd > log4j.appender.core.layout=org.apache.log4j.PatternLayout > log4j.appender.core.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} > %-5p %c{1}:%L - %m%n > # Quickfixj appender(s): quickfixj.event / quickfixj.incoming / > quickfixj.outgoing > log4j.logger.quickfixj.event=DEBUG, quickfixEvents > log4j.additivity.quickfixj.event=false; > log4j.appender.quickfixEvents=org.apache.log4j.DailyRollingFileAppender > log4j.appender.quickfixEvents.Append=true > log4j.appender.quickfixEvents.File=./logs/quickfix.log > log4j.appender.quickfixEvents.DatePattern='.'yyyy-MM-dd > log4j.appender.quickfixEvents.layout=org.apache.log4j.PatternLayout > log4j.appender.quickfixEvents.layout.ConversionPattern=%d{yyyy-MM-dd > HH:mm:ss.SSS} %-5p %c{1}:%L - %m%n > > > > -- > Sent from: http://quickfix-j.364392.n2.nabble.com/ > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > Quickfixj-users mailing lis...@li...://lists.sourceforge.net/lists/listinfo/quickfixj-users > > > -- > Christoph John > Software Engineering > T +49 241 557...@ma... > > MACD GmbH > Oppenhoffallee 103 > 52066 Aachen, Germanywww.macd.com > > Amtsgericht Aachen: HRB 8151 > Ust.-Id: DE 813021663 > Geschäftsführer: George Macdonald > > |
|
From: Christoph J. <chr...@ma...> - 2018-08-31 08:11:24
|
Hmm, OK. Just to rule outany regression error: could you please test with version 2.0.0? Thanks, Chris. On 31/08/18 10:06, Xiau Wei Toon wrote: > Indeed that is correct. The logfile is created but permanently empty. I have: > 1. Removed all the default slf4j configuration from session settings > 2. Added appender for log4j.logger.quickfixj.errorEvent > > Files are created, but empty. I redirect all the screen logs from java execute line to a dumpfile > and I can see all quickfixj events and msg logs generated without any WARN or ERROR. Turning on > additivity will not make a copy in system_debug.log as well. Version2.1 is the one used. > > > On Fri, 31 Aug 2018, 3:31 pm Christoph John, <chr...@ma... > <mailto:chr...@ma...>> wrote: > > So you are saying the file ./logs/quickfix.log gets created but with no content? No messages > and no events? > The SLF4J settings you are passing are the default ones as far as I can see. What happens if > you omit them? > I have just seen there is an undocumented setting SLF4JLogErrorEventCategory which defaults to > "quickfixj.errorEvent". What happens if you add that to your settings? > > IMHO it can only be a minor config error since this feature is used by many people. Which QFJ > version are you using BTW? > > Chris. > > On 31/08/18 08:59, ToonXW wrote: >> QuickFIX/J Documentation:http://www.quickfixj.org/documentation/ >> QuickFIX/J Support:http://www.quickfixj.org/support/ >> >> >> I have been trying to route all event logs to one daily rolling log file, >> however it is unclear what is going wrong. I verified that quickfixj picked >> up the log4j.properties file (by forcing an exception) and also confirmed >> that the target log file was created post startup. Please advise. >> >> *SessionSettings:* >> SLF4JLogEventCategory=quickfixj.event >> SLF4JLogIncomingMessageCategory=quickfixj.incoming >> SLF4JLogOutgoingMessageCategory=quickfixj.outgoing >> SLF4JLogPrependSessionID=Y >> SLF4JLogHeartbeats=Y >> >> *When building ThreadedSocketInitiator:* >> LogFactory logFactory = new SLF4JLogFactory(sessionSettings); >> >> *log4j.properties:* >> # Root logger option >> log4j.rootLogger=DEBUG, core >> # Write to log files, support date rolling. >> log4j.appender.core=org.apache.log4j.DailyRollingFileAppender >> log4j.appender.core.Append=true >> log4j.appender.core.File=./logs/system_debug.log >> log4j.appender.core.DatePattern='.'yyyy-MM-dd >> log4j.appender.core.layout=org.apache.log4j.PatternLayout >> log4j.appender.core.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} >> %-5p %c{1}:%L - %m%n >> # Quickfixj appender(s): quickfixj.event / quickfixj.incoming / >> quickfixj.outgoing >> log4j.logger.quickfixj.event=DEBUG, quickfixEvents >> log4j.additivity.quickfixj.event=false; >> log4j.appender.quickfixEvents=org.apache.log4j.DailyRollingFileAppender >> log4j.appender.quickfixEvents.Append=true >> log4j.appender.quickfixEvents.File=./logs/quickfix.log >> log4j.appender.quickfixEvents.DatePattern='.'yyyy-MM-dd >> log4j.appender.quickfixEvents.layout=org.apache.log4j.PatternLayout >> log4j.appender.quickfixEvents.layout.ConversionPattern=%d{yyyy-MM-dd >> HH:mm:ss.SSS} %-5p %c{1}:%L - %m%n >> -- Christoph John Software Engineering T +49 241 557080-28 chr...@ma... MACD GmbH Oppenhoffallee 103 52066 Aachen, Germany www.macd.com Amtsgericht Aachen: HRB 8151 Ust.-Id: DE 813021663 Geschäftsführer: George Macdonald |
|
From: Xiau W. T. <tx...@gm...> - 2018-08-31 08:25:57
|
Reverted to 2.0.0, does not work. In fact, we absolutely must use 2.1 since we rely on the new rawString method. If you were the one implementing, how would you do it? The requirement is simple. I want to route all event messages regardless of session into a daily rolling file using Log4j. On Fri, 31 Aug 2018, 4:11 pm Christoph John, <chr...@ma...> wrote: > Hmm, OK. > Just to rule out any regression error: could you please test with version > 2.0.0? > > Thanks, > Chris. > > > On 31/08/18 10:06, Xiau Wei Toon wrote: > > Indeed that is correct. The logfile is created but permanently empty. I > have: > 1. Removed all the default slf4j configuration from session settings > 2. Added appender for log4j.logger.quickfixj.errorEvent > > Files are created, but empty. I redirect all the screen logs from java > execute line to a dumpfile and I can see all quickfixj events and msg logs > generated without any WARN or ERROR. Turning on additivity will not make a > copy in system_debug.log as well. Version2.1 is the one used. > > > On Fri, 31 Aug 2018, 3:31 pm Christoph John, <chr...@ma...> > wrote: > >> So you are saying the file ./logs/quickfix.log gets created but with no >> content? No messages and no events? >> The SLF4J settings you are passing are the default ones as far as I can >> see. What happens if you omit them? >> I have just seen there is an undocumented setting >> SLF4JLogErrorEventCategory which defaults to "quickfixj.errorEvent". >> What happens if you add that to your settings? >> >> IMHO it can only be a minor config error since this feature is used by >> many people. Which QFJ version are you using BTW? >> >> Chris. >> >> On 31/08/18 08:59, ToonXW wrote: >> >> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ >> QuickFIX/J Support: http://www.quickfixj.org/support/ >> >> >> I have been trying to route all event logs to one daily rolling log file, >> however it is unclear what is going wrong. I verified that quickfixj picked >> up the log4j.properties file (by forcing an exception) and also confirmed >> that the target log file was created post startup. Please advise. >> >> *SessionSettings:* >> SLF4JLogEventCategory=quickfixj.event >> SLF4JLogIncomingMessageCategory=quickfixj.incoming >> SLF4JLogOutgoingMessageCategory=quickfixj.outgoing >> SLF4JLogPrependSessionID=Y >> SLF4JLogHeartbeats=Y >> >> *When building ThreadedSocketInitiator:* >> LogFactory logFactory = new SLF4JLogFactory(sessionSettings); >> >> *log4j.properties:* >> # Root logger option >> log4j.rootLogger=DEBUG, core >> # Write to log files, support date rolling. >> log4j.appender.core=org.apache.log4j.DailyRollingFileAppender >> log4j.appender.core.Append=true >> log4j.appender.core.File=./logs/system_debug.log >> log4j.appender.core.DatePattern='.'yyyy-MM-dd >> log4j.appender.core.layout=org.apache.log4j.PatternLayout >> log4j.appender.core.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} >> %-5p %c{1}:%L - %m%n >> # Quickfixj appender(s): quickfixj.event / quickfixj.incoming / >> quickfixj.outgoing >> log4j.logger.quickfixj.event=DEBUG, quickfixEvents >> log4j.additivity.quickfixj.event=false; >> log4j.appender.quickfixEvents=org.apache.log4j.DailyRollingFileAppender >> log4j.appender.quickfixEvents.Append=true >> log4j.appender.quickfixEvents.File=./logs/quickfix.log >> log4j.appender.quickfixEvents.DatePattern='.'yyyy-MM-dd >> log4j.appender.quickfixEvents.layout=org.apache.log4j.PatternLayout >> log4j.appender.quickfixEvents.layout.ConversionPattern=%d{yyyy-MM-dd >> HH:mm:ss.SSS} %-5p %c{1}:%L - %m%n >> >> >> > -- > Christoph John > Software Engineering > T +49 241 557...@ma... > > MACD GmbH > Oppenhoffallee 103 > 52066 Aachen, Germanywww.macd.com > > Amtsgericht Aachen: HRB 8151 > Ust.-Id: DE 813021663 > Geschäftsführer: George Macdonald > > |
|
From: Christoph J. <chr...@ma...> - 2018-08-31 08:29:50
|
OK, good news. Just wanted to make sure since there were some minor changes to the SLF4JLog class in the last release. I might find some time next week to set up a little test. Chris. On 31/08/18 10:25, Xiau Wei Toon wrote: > Reverted to 2.0.0, does not work. In fact, we absolutely must use 2.1 since we rely on the new > rawString method. > > If you were the one implementing, how would you do it? The requirement is simple. I want to route > all event messages regardless of session into a daily rolling file using Log4j. > > On Fri, 31 Aug 2018, 4:11 pm Christoph John, <chr...@ma... > <mailto:chr...@ma...>> wrote: > > Hmm, OK. > Just to rule outany regression error: could you please test with version 2.0.0? > > Thanks, > Chris. > > > On 31/08/18 10:06, Xiau Wei Toon wrote: >> Indeed that is correct. The logfile is created but permanently empty. I have: >> 1. Removed all the default slf4j configuration from session settings >> 2. Added appender for log4j.logger.quickfixj.errorEvent >> >> Files are created, but empty. I redirect all the screen logs from java execute line to a >> dumpfile and I can see all quickfixj events and msg logs generated without any WARN or ERROR. >> Turning on additivity will not make a copy in system_debug.log as well. Version2.1 is the one >> used. >> >> >> On Fri, 31 Aug 2018, 3:31 pm Christoph John, <chr...@ma... >> <mailto:chr...@ma...>> wrote: >> >> So you are saying the file ./logs/quickfix.log gets created but with no content? No >> messages and no events? >> The SLF4J settings you are passing are the default ones as far as I can see. What happens >> if you omit them? >> I have just seen there is an undocumented setting SLF4JLogErrorEventCategory which >> defaults to "quickfixj.errorEvent". What happens if you add that to your settings? >> >> IMHO it can only be a minor config error since this feature is used by many people. Which >> QFJ version are you using BTW? >> >> Chris. >> >> On 31/08/18 08:59, ToonXW wrote: >>> QuickFIX/J Documentation:http://www.quickfixj.org/documentation/ >>> QuickFIX/J Support:http://www.quickfixj.org/support/ >>> >>> >>> I have been trying to route all event logs to one daily rolling log file, >>> however it is unclear what is going wrong. I verified that quickfixj picked >>> up the log4j.properties file (by forcing an exception) and also confirmed >>> that the target log file was created post startup. Please advise. >>> >>> *SessionSettings:* >>> SLF4JLogEventCategory=quickfixj.event >>> SLF4JLogIncomingMessageCategory=quickfixj.incoming >>> SLF4JLogOutgoingMessageCategory=quickfixj.outgoing >>> SLF4JLogPrependSessionID=Y >>> SLF4JLogHeartbeats=Y >>> >>> *When building ThreadedSocketInitiator:* >>> LogFactory logFactory = new SLF4JLogFactory(sessionSettings); >>> >>> *log4j.properties:* >>> # Root logger option >>> log4j.rootLogger=DEBUG, core >>> # Write to log files, support date rolling. >>> log4j.appender.core=org.apache.log4j.DailyRollingFileAppender >>> log4j.appender.core.Append=true >>> log4j.appender.core.File=./logs/system_debug.log >>> log4j.appender.core.DatePattern='.'yyyy-MM-dd >>> log4j.appender.core.layout=org.apache.log4j.PatternLayout >>> log4j.appender.core.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} >>> %-5p %c{1}:%L - %m%n >>> # Quickfixj appender(s): quickfixj.event / quickfixj.incoming / >>> quickfixj.outgoing >>> log4j.logger.quickfixj.event=DEBUG, quickfixEvents >>> log4j.additivity.quickfixj.event=false; >>> log4j.appender.quickfixEvents=org.apache.log4j.DailyRollingFileAppender >>> log4j.appender.quickfixEvents.Append=true >>> log4j.appender.quickfixEvents.File=./logs/quickfix.log >>> log4j.appender.quickfixEvents.DatePattern='.'yyyy-MM-dd >>> log4j.appender.quickfixEvents.layout=org.apache.log4j.PatternLayout >>> log4j.appender.quickfixEvents.layout.ConversionPattern=%d{yyyy-MM-dd >>> HH:mm:ss.SSS} %-5p %c{1}:%L - %m%n >>> > > -- > Christoph John > Software Engineering > T +49 241 557080-28 > chr...@ma... <mailto:chr...@ma...> > > MACD GmbH > Oppenhoffallee 103 > 52066 Aachen, Germany > www.macd.com <http://www.macd.com> > > Amtsgericht Aachen: HRB 8151 > Ust.-Id: DE 813021663 > Geschäftsführer: George Macdonald > -- Christoph John Software Engineering T +49 241 557080-28 chr...@ma... MACD GmbH Oppenhoffallee 103 52066 Aachen, Germany www.macd.com Amtsgericht Aachen: HRB 8151 Ust.-Id: DE 813021663 Geschäftsführer: George Macdonald |
|
From: Christoph J. <chr...@ma...> - 2018-09-10 14:12:16
|
Sorry, I did not have time to follow this up. Did you find something out in the meantime or have a reproducable test case? Thanks, Chris. On 31/08/18 10:29, Christoph John via Quickfixj-users wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > > OK, good news. Just wanted to make sure since there were some minor changes to the SLF4JLog class > in the last release. > > I might find some time next week to set up a little test. > > Chris. > > On 31/08/18 10:25, Xiau Wei Toon wrote: >> Reverted to 2.0.0, does not work. In fact, we absolutely must use 2.1 since we rely on the new >> rawString method. >> >> If you were the one implementing, how would you do it? The requirement is simple. I want to route >> all event messages regardless of session into a daily rolling file using Log4j. >> >> On Fri, 31 Aug 2018, 4:11 pm Christoph John, <chr...@ma... >> <mailto:chr...@ma...>> wrote: >> >> Hmm, OK. >> Just to rule outany regression error: could you please test with version 2.0.0? >> >> Thanks, >> Chris. >> >> >> On 31/08/18 10:06, Xiau Wei Toon wrote: >>> Indeed that is correct. The logfile is created but permanently empty. I have: >>> 1. Removed all the default slf4j configuration from session settings >>> 2. Added appender for log4j.logger.quickfixj.errorEvent >>> >>> Files are created, but empty. I redirect all the screen logs from java execute line to a >>> dumpfile and I can see all quickfixj events and msg logs generated without any WARN or >>> ERROR. Turning on additivity will not make a copy in system_debug.log as well. Version2.1 is >>> the one used. >>> >>> >>> On Fri, 31 Aug 2018, 3:31 pm Christoph John, <chr...@ma... >>> <mailto:chr...@ma...>> wrote: >>> >>> So you are saying the file ./logs/quickfix.log gets created but with no content? No >>> messages and no events? >>> The SLF4J settings you are passing are the default ones as far as I can see. What >>> happens if you omit them? >>> I have just seen there is an undocumented setting SLF4JLogErrorEventCategory which >>> defaults to "quickfixj.errorEvent". What happens if you add that to your settings? >>> >>> IMHO it can only be a minor config error since this feature is used by many people. >>> Which QFJ version are you using BTW? >>> >>> Chris. >>> >>> On 31/08/18 08:59, ToonXW wrote: >>>> QuickFIX/J Documentation:http://www.quickfixj.org/documentation/ >>>> QuickFIX/J Support:http://www.quickfixj.org/support/ >>>> >>>> >>>> I have been trying to route all event logs to one daily rolling log file, >>>> however it is unclear what is going wrong. I verified that quickfixj picked >>>> up the log4j.properties file (by forcing an exception) and also confirmed >>>> that the target log file was created post startup. Please advise. >>>> >>>> *SessionSettings:* >>>> SLF4JLogEventCategory=quickfixj.event >>>> SLF4JLogIncomingMessageCategory=quickfixj.incoming >>>> SLF4JLogOutgoingMessageCategory=quickfixj.outgoing >>>> SLF4JLogPrependSessionID=Y >>>> SLF4JLogHeartbeats=Y >>>> >>>> *When building ThreadedSocketInitiator:* >>>> LogFactory logFactory = new SLF4JLogFactory(sessionSettings); >>>> >>>> *log4j.properties:* >>>> # Root logger option >>>> log4j.rootLogger=DEBUG, core >>>> # Write to log files, support date rolling. >>>> log4j.appender.core=org.apache.log4j.DailyRollingFileAppender >>>> log4j.appender.core.Append=true >>>> log4j.appender.core.File=./logs/system_debug.log >>>> log4j.appender.core.DatePattern='.'yyyy-MM-dd >>>> log4j.appender.core.layout=org.apache.log4j.PatternLayout >>>> log4j.appender.core.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} >>>> %-5p %c{1}:%L - %m%n >>>> # Quickfixj appender(s): quickfixj.event / quickfixj.incoming / >>>> quickfixj.outgoing >>>> log4j.logger.quickfixj.event=DEBUG, quickfixEvents >>>> log4j.additivity.quickfixj.event=false; >>>> log4j.appender.quickfixEvents=org.apache.log4j.DailyRollingFileAppender >>>> log4j.appender.quickfixEvents.Append=true >>>> log4j.appender.quickfixEvents.File=./logs/quickfix.log >>>> log4j.appender.quickfixEvents.DatePattern='.'yyyy-MM-dd >>>> log4j.appender.quickfixEvents.layout=org.apache.log4j.PatternLayout >>>> log4j.appender.quickfixEvents.layout.ConversionPattern=%d{yyyy-MM-dd >>>> HH:mm:ss.SSS} %-5p %c{1}:%L - %m%n >>>> >> >> -- >> Christoph John >> Software Engineering >> T +49 241 557080-28 >> chr...@ma... <mailto:chr...@ma...> >> >> MACD GmbH >> Oppenhoffallee 103 >> 52066 Aachen, Germany >> www.macd.com <http://www.macd.com> >> >> Amtsgericht Aachen: HRB 8151 >> Ust.-Id: DE 813021663 >> Geschäftsführer: George Macdonald >> > > -- > Christoph John > Software Engineering > T +49 241 557080-28 > chr...@ma... > > MACD GmbH > Oppenhoffallee 103 > 52066 Aachen, Germany > www.macd.com > > Amtsgericht Aachen: HRB 8151 > Ust.-Id: DE 813021663 > Geschäftsführer: George Macdonald > > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > > > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users -- Christoph John Software Engineering T +49 241 557080-28 chr...@ma... MACD GmbH Oppenhoffallee 103 52066 Aachen, Germany www.macd.com Amtsgericht Aachen: HRB 8151 Ust.-Id: DE 813021663 Geschäftsführer: George Macdonald |
|
From: Colin D. <co...@ma...> - 2018-09-10 15:26:38
|
FWIW, I looked at the logger.properties file OP provided. The file, itself, looked accurate. I find in times like this that, sometimes, Log4J is not looking at the file I think it's looking at. I would add '-Dlog4j.debug' to the application and check the first few lines at startup to verify the config file used is the one expected. On 09/10/2018 07:12 AM, Christoph John via Quickfixj-users wrote: > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > > Sorry, I did not have time to follow this up. Did you find something > out in the meantime or have a reproducable test case? > > Thanks, > Chris. > > > On 31/08/18 10:29, Christoph John via Quickfixj-users wrote: >> QuickFIX/J Documentation:http://www.quickfixj.org/documentation/ >> QuickFIX/J Support:http://www.quickfixj.org/support/ >> >> >> >> >> OK, good news. Just wanted to make sure since there were some minor >> changes to the SLF4JLog class in the last release. >> >> I might find some time next week to set up a little test. >> >> Chris. >> >> On 31/08/18 10:25, Xiau Wei Toon wrote: >>> Reverted to 2.0.0, does not work. In fact, we absolutely must use >>> 2.1 since we rely on the new rawString method. >>> >>> If you were the one implementing, how would you do it? The >>> requirement is simple. I want to route all event messages regardless >>> of session into a daily rolling file using Log4j. >>> >>> On Fri, 31 Aug 2018, 4:11 pm Christoph John, >>> <chr...@ma... <mailto:chr...@ma...>> wrote: >>> >>> Hmm, OK. >>> Just to rule outany regression error: could you please test with >>> version 2.0.0? >>> >>> Thanks, >>> Chris. >>> >>> >>> On 31/08/18 10:06, Xiau Wei Toon wrote: >>>> Indeed that is correct. The logfile is created but permanently >>>> empty. I have: >>>> 1. Removed all the default slf4j configuration from session >>>> settings >>>> 2. Added appender for log4j.logger.quickfixj.errorEvent >>>> >>>> Files are created, but empty. I redirect all the screen logs >>>> from java execute line to a dumpfile and I can see all >>>> quickfixj events and msg logs generated without any WARN or >>>> ERROR. Turning on additivity will not make a copy in >>>> system_debug.log as well. Version2.1 is the one used. >>>> >>>> >>>> On Fri, 31 Aug 2018, 3:31 pm Christoph John, >>>> <chr...@ma... <mailto:chr...@ma...>> wrote: >>>> >>>> So you are saying the file ./logs/quickfix.log gets created >>>> but with no content? No messages and no events? >>>> The SLF4J settings you are passing are the default ones as >>>> far as I can see. What happens if you omit them? >>>> I have just seen there is an undocumented setting >>>> SLF4JLogErrorEventCategory which defaults to >>>> "quickfixj.errorEvent". What happens if you add that to >>>> your settings? >>>> >>>> IMHO it can only be a minor config error since this feature >>>> is used by many people. Which QFJ version are you using BTW? >>>> >>>> Chris. >>>> >>>> On 31/08/18 08:59, ToonXW wrote: >>>>> QuickFIX/J Documentation:http://www.quickfixj.org/documentation/ >>>>> QuickFIX/J Support:http://www.quickfixj.org/support/ >>>>> >>>>> >>>>> I have been trying to route all event logs to one daily rolling log file, >>>>> however it is unclear what is going wrong. I verified that quickfixj picked >>>>> up the log4j.properties file (by forcing an exception) and also confirmed >>>>> that the target log file was created post startup. Please advise. >>>>> >>>>> *SessionSettings:* >>>>> SLF4JLogEventCategory=quickfixj.event >>>>> SLF4JLogIncomingMessageCategory=quickfixj.incoming >>>>> SLF4JLogOutgoingMessageCategory=quickfixj.outgoing >>>>> SLF4JLogPrependSessionID=Y >>>>> SLF4JLogHeartbeats=Y >>>>> >>>>> *When building ThreadedSocketInitiator:* >>>>> LogFactory logFactory = new SLF4JLogFactory(sessionSettings); >>>>> >>>>> *log4j.properties:* >>>>> # Root logger option >>>>> log4j.rootLogger=DEBUG, core >>>>> # Write to log files, support date rolling. >>>>> log4j.appender.core=org.apache.log4j.DailyRollingFileAppender >>>>> log4j.appender.core.Append=true >>>>> log4j.appender.core.File=./logs/system_debug.log >>>>> log4j.appender.core.DatePattern='.'yyyy-MM-dd >>>>> log4j.appender.core.layout=org.apache.log4j.PatternLayout >>>>> log4j.appender.core.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} >>>>> %-5p %c{1}:%L - %m%n >>>>> # Quickfixj appender(s): quickfixj.event / quickfixj.incoming / >>>>> quickfixj.outgoing >>>>> log4j.logger.quickfixj.event=DEBUG, quickfixEvents >>>>> log4j.additivity.quickfixj.event=false; >>>>> log4j.appender.quickfixEvents=org.apache.log4j.DailyRollingFileAppender >>>>> log4j.appender.quickfixEvents.Append=true >>>>> log4j.appender.quickfixEvents.File=./logs/quickfix.log >>>>> log4j.appender.quickfixEvents.DatePattern='.'yyyy-MM-dd >>>>> log4j.appender.quickfixEvents.layout=org.apache.log4j.PatternLayout >>>>> log4j.appender.quickfixEvents.layout.ConversionPattern=%d{yyyy-MM-dd >>>>> HH:mm:ss.SSS} %-5p %c{1}:%L - %m%n >>>>> >>> >>> -- >>> Christoph John >>> Software Engineering >>> T +49 241 557080-28 >>> chr...@ma... <mailto:chr...@ma...> >>> >>> MACD GmbH >>> Oppenhoffallee 103 >>> 52066 Aachen, Germany >>> www.macd.com <http://www.macd.com> >>> >>> Amtsgericht Aachen: HRB 8151 >>> Ust.-Id: DE 813021663 >>> Geschäftsführer: George Macdonald >>> >> >> -- >> Christoph John >> Software Engineering >> T +49 241 557080-28 >> chr...@ma... >> >> MACD GmbH >> Oppenhoffallee 103 >> 52066 Aachen, Germany >> www.macd.com >> >> Amtsgericht Aachen: HRB 8151 >> Ust.-Id: DE 813021663 >> Geschäftsführer: George Macdonald >> >> >> ------------------------------------------------------------------------------ >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, Slashdot.org!http://sdm.link/slashdot >> >> >> _______________________________________________ >> Quickfixj-users mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfixj-users > > -- > Christoph John > Software Engineering > T +49 241 557080-28 > chr...@ma... > > MACD GmbH > Oppenhoffallee 103 > 52066 Aachen, Germany > www.macd.com > > Amtsgericht Aachen: HRB 8151 > Ust.-Id: DE 813021663 > Geschäftsführer: George Macdonald > > > > > _______________________________________________ > Quickfixj-users mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfixj-users -- Colin DuPlantis Chief Architect, Marketcetera Download, Run, Trade 888.868.4884 +1.541.306.6556 http://www.marketcetera.org |
|
From: Xiau W. T. <tx...@gm...> - 2018-09-10 15:10:34
|
No problem. I've moved this requirement to future releases since there are more urgent deliveries to complete first, thus no more available information on my part. Would be great if you could advise on how you'd do it so I can reflect on this once it comes back onto my plate. Thanks. On Mon, 10 Sep 2018, 10:12 pm Christoph John, <chr...@ma...> wrote: > Sorry, I did not have time to follow this up. Did you find something out > in the meantime or have a reproducable test case? > > Thanks, > Chris. > > > On 31/08/18 10:29, Christoph John via Quickfixj-users wrote: > > QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ > QuickFIX/J Support: http://www.quickfixj.org/support/ > > > > OK, good news. Just wanted to make sure since there were some minor > changes to the SLF4JLog class in the last release. > > I might find some time next week to set up a little test. > > Chris. > > On 31/08/18 10:25, Xiau Wei Toon wrote: > > Reverted to 2.0.0, does not work. In fact, we absolutely must use 2.1 > since we rely on the new rawString method. > > If you were the one implementing, how would you do it? The requirement is > simple. I want to route all event messages regardless of session into a > daily rolling file using Log4j. > > On Fri, 31 Aug 2018, 4:11 pm Christoph John, <chr...@ma...> > wrote: > >> Hmm, OK. >> Just to rule out any regression error: could you please test with >> version 2.0.0? >> >> Thanks, >> Chris. >> >> >> On 31/08/18 10:06, Xiau Wei Toon wrote: >> >> Indeed that is correct. The logfile is created but permanently empty. I >> have: >> 1. Removed all the default slf4j configuration from session settings >> 2. Added appender for log4j.logger.quickfixj.errorEvent >> >> Files are created, but empty. I redirect all the screen logs from java >> execute line to a dumpfile and I can see all quickfixj events and msg logs >> generated without any WARN or ERROR. Turning on additivity will not make a >> copy in system_debug.log as well. Version2.1 is the one used. >> >> >> On Fri, 31 Aug 2018, 3:31 pm Christoph John, <chr...@ma...> >> wrote: >> >>> So you are saying the file ./logs/quickfix.log gets created but with no >>> content? No messages and no events? >>> The SLF4J settings you are passing are the default ones as far as I can >>> see. What happens if you omit them? >>> I have just seen there is an undocumented setting >>> SLF4JLogErrorEventCategory which defaults to "quickfixj.errorEvent". >>> What happens if you add that to your settings? >>> >>> IMHO it can only be a minor config error since this feature is used by >>> many people. Which QFJ version are you using BTW? >>> >>> Chris. >>> >>> On 31/08/18 08:59, ToonXW wrote: >>> >>> QuickFIX/J Documentation: http://www.quickfixj.org/documentation/ >>> QuickFIX/J Support: http://www.quickfixj.org/support/ >>> >>> >>> I have been trying to route all event logs to one daily rolling log file, >>> however it is unclear what is going wrong. I verified that quickfixj picked >>> up the log4j.properties file (by forcing an exception) and also confirmed >>> that the target log file was created post startup. Please advise. >>> >>> *SessionSettings:* >>> SLF4JLogEventCategory=quickfixj.event >>> SLF4JLogIncomingMessageCategory=quickfixj.incoming >>> SLF4JLogOutgoingMessageCategory=quickfixj.outgoing >>> SLF4JLogPrependSessionID=Y >>> SLF4JLogHeartbeats=Y >>> >>> *When building ThreadedSocketInitiator:* >>> LogFactory logFactory = new SLF4JLogFactory(sessionSettings); >>> >>> *log4j.properties:* >>> # Root logger option >>> log4j.rootLogger=DEBUG, core >>> # Write to log files, support date rolling. >>> log4j.appender.core=org.apache.log4j.DailyRollingFileAppender >>> log4j.appender.core.Append=true >>> log4j.appender.core.File=./logs/system_debug.log >>> log4j.appender.core.DatePattern='.'yyyy-MM-dd >>> log4j.appender.core.layout=org.apache.log4j.PatternLayout >>> log4j.appender.core.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} >>> %-5p %c{1}:%L - %m%n >>> # Quickfixj appender(s): quickfixj.event / quickfixj.incoming / >>> quickfixj.outgoing >>> log4j.logger.quickfixj.event=DEBUG, quickfixEvents >>> log4j.additivity.quickfixj.event=false; >>> log4j.appender.quickfixEvents=org.apache.log4j.DailyRollingFileAppender >>> log4j.appender.quickfixEvents.Append=true >>> log4j.appender.quickfixEvents.File=./logs/quickfix.log >>> log4j.appender.quickfixEvents.DatePattern='.'yyyy-MM-dd >>> log4j.appender.quickfixEvents.layout=org.apache.log4j.PatternLayout >>> log4j.appender.quickfixEvents.layout.ConversionPattern=%d{yyyy-MM-dd >>> HH:mm:ss.SSS} %-5p %c{1}:%L - %m%n >>> >>> >>> >> -- >> Christoph John >> Software Engineering >> T +49 241 557...@ma... >> >> MACD GmbH >> Oppenhoffallee 103 >> 52066 Aachen, Germanywww.macd.com >> >> Amtsgericht Aachen: HRB 8151 >> Ust.-Id: DE 813021663 >> Geschäftsführer: George Macdonald >> >> > -- > Christoph John > Software Engineering > T +49 241 557...@ma... > > MACD GmbH > Oppenhoffallee 103 > 52066 Aachen, Germanywww.macd.com > > Amtsgericht Aachen: HRB 8151 > Ust.-Id: DE 813021663 > Geschäftsführer: George Macdonald > > > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > > > > _______________________________________________ > Quickfixj-users mailing lis...@li...://lists.sourceforge.net/lists/listinfo/quickfixj-users > > > -- > Christoph John > Software Engineering > T +49 241 557...@ma... > > MACD GmbH > Oppenhoffallee 103 > 52066 Aachen, Germanywww.macd.com > > Amtsgericht Aachen: HRB 8151 > Ust.-Id: DE 813021663 > Geschäftsführer: George Macdonald > > |
|
From: Christoph J. <chr...@ma...> - 2018-09-10 15:42:48
|
Maybe you could give Colin'shinta try. Moreover, I ran the test suite and saw files like these generated in the temp dir: FIX.4.2-SENDER1536593511974-TARGET1536593511974.messages.log FIX.4.2-SENDER1536593511974-TARGET1536593511974.event.log They contained some events and a test message (created by the FileLogTest). So I would assume that it should work and also suspect some kindof log4j problem/anomaly. Cheers, Chris. On 10/09/18 17:10, Xiau Wei Toon wrote: > No problem. I've moved this requirement to future releases since there are more urgent deliveries > to complete first, thus no more available information on my part. > > Would be great if you could advise on how you'd do it so I can reflect on this once it comes back > onto my plate. > > Thanks. > > On Mon, 10 Sep 2018, 10:12 pm Christoph John, <chr...@ma... > <mailto:chr...@ma...>> wrote: > > Sorry, I did not have time to follow this up. Did you find something out in the meantime or > have a reproducable test case? > > Thanks, > Chris. > > > On 31/08/18 10:29, Christoph John via Quickfixj-users wrote: >> QuickFIX/J Documentation:http://www.quickfixj.org/documentation/ >> QuickFIX/J Support:http://www.quickfixj.org/support/ >> >> >> >> >> OK, good news. Just wanted to make sure since there were some minor changes to the SLF4JLog >> class in the last release. >> >> I might find some time next week to set up a little test. >> >> Chris. >> >> On 31/08/18 10:25, Xiau Wei Toon wrote: >>> Reverted to 2.0.0, does not work. In fact, we absolutely must use 2.1 since we rely on the >>> new rawString method. >>> >>> If you were the one implementing, how would you do it? The requirement is simple. I want to >>> route all event messages regardless of session into a daily rolling file using Log4j. >>> >>> On Fri, 31 Aug 2018, 4:11 pm Christoph John, <chr...@ma... >>> <mailto:chr...@ma...>> wrote: >>> >>> Hmm, OK. >>> Just to rule outany regression error: could you please test with version 2.0.0? >>> >>> Thanks, >>> Chris. >>> >>> >>> On 31/08/18 10:06, Xiau Wei Toon wrote: >>>> Indeed that is correct. The logfile is created but permanently empty. I have: >>>> 1. Removed all the default slf4j configuration from session settings >>>> 2. Added appender for log4j.logger.quickfixj.errorEvent >>>> >>>> Files are created, but empty. I redirect all the screen logs from java execute line to >>>> a dumpfile and I can see all quickfixj events and msg logs generated without any WARN >>>> or ERROR. Turning on additivity will not make a copy in system_debug.log as well. >>>> Version2.1 is the one used. >>>> >>>> >>>> On Fri, 31 Aug 2018, 3:31 pm Christoph John, <chr...@ma... >>>> <mailto:chr...@ma...>> wrote: >>>> >>>> So you are saying the file ./logs/quickfix.log gets created but with no content? No >>>> messages and no events? >>>> The SLF4J settings you are passing are the default ones as far as I can see. What >>>> happens if you omit them? >>>> I have just seen there is an undocumented setting SLF4JLogErrorEventCategory which >>>> defaults to "quickfixj.errorEvent". What happens if you add that to your settings? >>>> >>>> IMHO it can only be a minor config error since this feature is used by many people. >>>> Which QFJ version are you using BTW? >>>> >>>> Chris. >>>> >>>> On 31/08/18 08:59, ToonXW wrote: >>>>> QuickFIX/J Documentation:http://www.quickfixj.org/documentation/ >>>>> QuickFIX/J Support:http://www.quickfixj.org/support/ >>>>> >>>>> >>>>> I have been trying to route all event logs to one daily rolling log file, >>>>> however it is unclear what is going wrong. I verified that quickfixj picked >>>>> up the log4j.properties file (by forcing an exception) and also confirmed >>>>> that the target log file was created post startup. Please advise. >>>>> >>>>> *SessionSettings:* >>>>> SLF4JLogEventCategory=quickfixj.event >>>>> SLF4JLogIncomingMessageCategory=quickfixj.incoming >>>>> SLF4JLogOutgoingMessageCategory=quickfixj.outgoing >>>>> SLF4JLogPrependSessionID=Y >>>>> SLF4JLogHeartbeats=Y >>>>> >>>>> *When building ThreadedSocketInitiator:* >>>>> LogFactory logFactory = new SLF4JLogFactory(sessionSettings); >>>>> >>>>> *log4j.properties:* >>>>> # Root logger option >>>>> log4j.rootLogger=DEBUG, core >>>>> # Write to log files, support date rolling. >>>>> log4j.appender.core=org.apache.log4j.DailyRollingFileAppender >>>>> log4j.appender.core.Append=true >>>>> log4j.appender.core.File=./logs/system_debug.log >>>>> log4j.appender.core.DatePattern='.'yyyy-MM-dd >>>>> log4j.appender.core.layout=org.apache.log4j.PatternLayout >>>>> log4j.appender.core.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} >>>>> %-5p %c{1}:%L - %m%n >>>>> # Quickfixj appender(s): quickfixj.event / quickfixj.incoming / >>>>> quickfixj.outgoing >>>>> log4j.logger.quickfixj.event=DEBUG, quickfixEvents >>>>> log4j.additivity.quickfixj.event=false; >>>>> log4j.appender.quickfixEvents=org.apache.log4j.DailyRollingFileAppender >>>>> log4j.appender.quickfixEvents.Append=true >>>>> log4j.appender.quickfixEvents.File=./logs/quickfix.log >>>>> log4j.appender.quickfixEvents.DatePattern='.'yyyy-MM-dd >>>>> log4j.appender.quickfixEvents.layout=org.apache.log4j.PatternLayout >>>>> log4j.appender.quickfixEvents.layout.ConversionPattern=%d{yyyy-MM-dd >>>>> HH:mm:ss.SSS} %-5p %c{1}:%L - %m%n >>>>> >>> >>> -- >>> Christoph John >>> Software Engineering >>> T +49 241 557080-28 >>> chr...@ma... <mailto:chr...@ma...> >>> >>> MACD GmbH >>> Oppenhoffallee 103 >>> 52066 Aachen, Germany >>> www.macd.com <http://www.macd.com> >>> >>> Amtsgericht Aachen: HRB 8151 >>> Ust.-Id: DE 813021663 >>> Geschäftsführer: George Macdonald >>> >> >> -- >> Christoph John >> Software Engineering >> T +49 241 557080-28 >> chr...@ma... <mailto:chr...@ma...> >> >> MACD GmbH >> Oppenhoffallee 103 >> 52066 Aachen, Germany >> www.macd.com <http://www.macd.com> >> >> Amtsgericht Aachen: HRB 8151 >> Ust.-Id: DE 813021663 >> Geschäftsführer: George Macdonald >> >> >> ------------------------------------------------------------------------------ >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, Slashdot.org!http://sdm.link/slashdot >> >> >> _______________________________________________ >> Quickfixj-users mailing list >> Qui...@li... <mailto:Qui...@li...> >> https://lists.sourceforge.net/lists/listinfo/quickfixj-users > > -- > Christoph John > Software Engineering > T +49 241 557080-28 > chr...@ma... <mailto:chr...@ma...> > > MACD GmbH > Oppenhoffallee 103 > 52066 Aachen, Germany > www.macd.com <http://www.macd.com> > > Amtsgericht Aachen: HRB 8151 > Ust.-Id: DE 813021663 > Geschäftsführer: George Macdonald > -- Christoph John Software Engineering T +49 241 557080-28 chr...@ma... MACD GmbH Oppenhoffallee 103 52066 Aachen, Germany www.macd.com Amtsgericht Aachen: HRB 8151 Ust.-Id: DE 813021663 Geschäftsführer: George Macdonald |