Search ABAddressbook iOS SDK

I want to search the iPhone address book for a specific phone number, and then retrieve the contact name. I am currently looping through all contacts and extracting the multivalue properties and comparing against the value. This is taking way too much time. I have read the Apple addressbook guide, and they say:

"accomplish other kinds of searches, use the function ABAddressBookCopyArrayOfAllPeople, а затем отфильтруйте результаты, используя и вместо этого предпочел бы, чтобы это сохранялось в собственном файле журнала.

Конечным результатом, который я хотел бы, был файл с именем log-file.txt со всеми журналами из приложения, кроме журналов сторонних разработчиков. . И второй файл с именем log-file-3rdparty.txt с ведением журнала только из стороннего приложения. Проблема, с которой я столкнулся, заключается в настройке Log4Net на два отдельных регистратора. Я уже пробовал создать второй LogFileAppender и добавить его в корень, однако все это приводит к тому, что одни и те же операторы ведения журнала помещаются в оба регистратора.

В настоящее время в приложении у нас есть следующий оператор GetLogger. В идеале это должно оставаться неизменным, поэтому существующие журналы не меняются. Мне нужен новый регистратор, на который не влияет этот оператор, а вместо этого создается экземпляр исключительно для стороннего ведения журнала.

закрытый только для чтения ILog _log = LogManager.GetLogger (System.Reflection.MethodBase.GetCurrentMethod (). DeclaringType);

И App.Config следующим образом.

< log4net>
<logger name="MyApp.Logging">
  <level value="DEBUG"/>
</logger>

<root>
  <level value="ALL" />
  <appender-ref ref="LogFileAppender" />
</root>

<appender name="LogFileAppender" type="log4net.Appender.FileAppender" >
  <param name="File" value="log-file.txt" />
  <param name="AppendToFile" value="true" />
  <layout type="log4net.Layout.PatternLayout">
    <param name="Header" value="&#13;&#10;[Application started]&#13;&#10;" />
    <param name="Footer" value="[Application Finished]&#13;&#10;"/>
    <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
  </layout>
</appender>
</ log4net>

Вы можете помочь?

EDIT

Если это имеет значение. События стороннего журнала регистрируются в том же классе, из которого также запускаются некоторые из событий журнала моего приложения, потому что этот класс отвечает за управление сторонним программным обеспечением. Это проблема? У меня есть некоторые подозрения, что log4net может различать, какой регистратор создать на основе имен классов, и если это так, нужно ли мне реорганизовать стороннее ведение журнала до его собственного класса?

38
задан JonWillis 1 March 2011 в 11:49
поделиться