如何禁用所有Quickfix/n的日誌和文件工廠?我想處理所有的日誌記錄和消息發送,因爲我不喜歡Quickfix如何記錄消息的方式,這意味着我想確定日誌記錄消息的發生時間和方式。有沒有辦法徹底禁用任何基於屏幕或基於文件的日誌記錄?Quickfix/n,如何禁用存儲和日誌工廠?
感謝
如何禁用所有Quickfix/n的日誌和文件工廠?我想處理所有的日誌記錄和消息發送,因爲我不喜歡Quickfix如何記錄消息的方式,這意味着我想確定日誌記錄消息的發生時間和方式。有沒有辦法徹底禁用任何基於屏幕或基於文件的日誌記錄?Quickfix/n,如何禁用存儲和日誌工廠?
感謝
應該有一個NullLogFactory,但我沒有看到當前一個,和我有點困惑,爲什麼不。我以爲有一個。 (如果你不知道,我保持QF/N。)
但是你可以創建一個像這樣:
public class NullLogFactory : ILogFactory
{
SessionSettings settings_;
#region LogFactory Members
public NullLogFactory(SessionSettings settings)
{}
public ILog Create(SessionID sessionID)
{
return new QuickFix.NullLog();
}
#endregion
}
下QF/N版本將包含一個空的工廠或東西來填補間隙。
老問題,但可能用於搜索此人的人。
如果你想更輕鬆地啓用/禁用日誌記錄,我覺得這是更好的設置在插座引發劑類app.config文件並處理它的值是這樣的:
應用。配置
<appSettings>
<add key="LogMessages" value="false"/>
</appSettings>
應用程序代碼
bool logMessages = Convert.ToBoolean(ConfigurationManager.AppSettings["LogMessages"]);
try
{
SocketInitiator initiator;
QuickFix.SessionSettings settings = new QuickFix.SessionSettings(file);
MessageProcessor application = new MessageProcessor();
QuickFix.IMessageStoreFactory storeFactory = new QuickFix.FileStoreFactory(settings);
QuickFix.ILogFactory logFactory = new QuickFix.FileLogFactory(settings);
if (!logMessages)
{
initiator = new QuickFix.Transport.SocketInitiator(application, storeFactory, settings);
}
else
{
initiator = new QuickFix.Transport.SocketInitiator(application, storeFactory, settings, logFactory);
}
application.MyInitiator = initiator;
initiator.Start();
while (!initiator.IsLoggedOn)
{
//wait until the initiator has logged on
}
//do stuff
}
catch
{// exception handling code}