Конференция "Сети" » Как использовать TIdLogFile с серверами в Indy9? [D7, WinXP]
 
  • ABolnykh © (15.09.09 11:59) [0]
    Здравствуйте.
    Кто в курсе - подскажите, пожалуйста, как использовать компоненты IdLogFile и IdLogDebug для протоколирования подключений клиентов к IdTcpServer и IdMappedPort в Indy9 в серверном приложении?
    В событиях Intercept серверных компонентов названия протоколирующих компонентов не появляются, read-only свойство IsClient = True не знаю где и как правильно переопределить (если это нужно и возможно), в Интернете конкретных советов по этому поводу тоже не нашёл.
    В каком направлении двигаться?
    Буду благодарен за любую информацию.
  • Сергей М. © (15.09.09 12:12) [1]

    > названия протоколирующих компонентов не появляются


    Потому что ты пытаешься задействовать клиентские (а не серверные) протоколирующие компоненты.

    В 10-ке серверные - это IdServerInterceptLogFile и IdServerInterceptLogEvent

    Не помню как в 9-ке, но вероятно и там они имеются
  • ABolnykh © (15.09.09 12:28) [2]

    > В 10-ке серверные - это IdServerInterceptLogFile и IdServerInterceptLogEvent
    >
    > Не помню как в 9-ке, но вероятно и там они имеются
    > <Цитата>


    Была бы 10-ка - не было бы вопроса.
    В том-то и проблема, что в 9-ке их нет. А как применить то что есть - непонятно.
  • Сергей М. © (15.09.09 12:49) [3]
    Ну поставь 10-ку, долго ли ?
    Рано или поздно все равно придется на 10-ку перейти ..
  • ABolnykh © (15.09.09 13:13) [4]

    > Ну поставь 10-ку, долго ли ?


    Да в этом направлении я и сам уже второй день размышляю... :-) :-) :-)

    Всё-таки интересно: как народ жил, когда десятки не было? Ведь проблема-то была - её же, судя по радостным восклицаниям на форумах, как-то же решали... Но вот примером поделиться никто не захотел.

    Может, кто-нибудь всё же в курсе, как решить эту задачу "в лоб", никуда не мигрируя?

    К тому же, переход на 10-ку может создать больше проблем, чем облегчений: из-за несовпадения свойств у многих компонентов может потребоваться переделывать весь проект, чего и врагу не пожелаешь.
  • Сергей М. © (15.09.09 13:29) [5]

    > как народ жил, когда десятки не было?


    Хреново жил .. Да и сейчас, при 10-ке, не многим лучше)

    Старые 9-шные глюки-недоработки подчистили-подправили, новые 10-шные добавили..

    Вот такая селяви, панимаишь)
  • Anatoly Podgoretsky © (15.09.09 13:55) [6]
    > Сергей М.  (15.09.2009 13:29:05)  [5]

    Я бы сказал хуже, подчистили подправили и полностью переделали, теперь оно стало очень сложным и что делать без примеров и нормальной документации, с гигантской справкой, за которой теряется концепция работы.
  • Сергей М. © (15.09.09 14:22) [7]

    > Anatoly Podgoretsky ©   (15.09.09 13:55) [6]


    > полностью переделали


    Ну радикальная переделка там, разумеется, сама собой напрашивалась: тошнило от одного взгляда на исходники..

    Короче, нетленка Черномырдина и у индейцев актуальна)
  • ABolnykh © (15.09.09 15:16) [8]
    Короче, вы оба хотите сказать, что проще переквалифицироваться в управдомы, чем получить с помощью компонентов Indy9 протокол серверных подключений? :-)
  • ABolnykh © (15.09.09 15:27) [9]

    > теперь оно стало очень сложным и что делать без примеров
    > и нормальной документации, с гигантской справкой, за которой
    > теряется концепция работы.


    За справедливость этого утверждения голосую всеми двумя руками!
    Зачем творить суперзаумные вещи, а потом никому не объяснять, как ими следует пользоваться?
  • Anatoly Podgoretsky © (15.09.09 15:28) [10]
    > Сергей М.  (15.09.2009 14:22:07)  [7]

    А сейчас не тошнит?
    Я уже не смотрел в Инди10
  • Сергей М. © (15.09.09 16:04) [11]

    > ABolnykh ©   (15.09.09 15:16) [8]


    У тебя есть альтернатива - событие OnConnect.
    Прикрутить к нему протоколирование - простейшая задача.
  • Сергей М. © (15.09.09 16:18) [12]

    > А сейчас не тошнит?


    Сейчас хоть какая-то общая концептуальная схема вырисовывается, пусть и шибко заумная).. Многое теперь можно затачивать под свои задачи, не перекраивая исходники..

    9-ку же иначе как говнокодом назвать было нельзя.
  • Anatoly Podgoretsky © (15.09.09 16:25) [13]
    > ABolnykh  (15.09.2009 15:16:08)  [8]

    В принципе да проще, поскольку не все компоненты рабочии и почти все непрозрачные.
    я несколько раз был вынужден использовать компоненты Инди, и всегда в итоге получалось на ICS
    Потеряное время жалко, но второй раз я потерял только день, а первый неделю, чтобы понять какая это гадость ваша заливная рыба.
    Конечно простые случаи на Инди решаются легко, но чем дальше от протореной дороги, тем хуже.
    Я не в курсе, как с этим дело обстоит по части TIdLogFile.
  • ABolnykh © (15.09.09 16:47) [14]

    > У тебя есть альтернатива - событие OnConnect.
    > Прикрутить к нему протоколирование - простейшая задача.

    Можно, конечно, и так.
    А чем узнать, какой IP ко мне подключился?
  • Сергей М. © (15.09.09 16:53) [15]
    см. TIdSocketHandle.PeerIP

    На объект этого класса выйдешь через параметр, передаваемый в обработчик события
  • Anatoly Podgoretsky © (15.09.09 16:59) [16]
    > ABolnykh  (15.09.2009 16:47:14)  [14]

    Вроде в Инди это IdContext
  • Сергей М. © (15.09.09 17:02) [17]
    Как-то так:

    PeerIP := AThread.Connection.PeerIP;
    PeerPort := AThread.Connection.PeerPort;




    > Anatoly Podgoretsky ©   (15.09.09 16:59) [16]


    Про 9-ку же речь пока у автора идет, насколько я понимаю ..
    А IdContext родился в 10-ке, похоронив IdPeerThread
  • ABolnykh © (15.09.09 17:10) [18]

    > Вроде в Инди это IdContext

    Завтра с утра попробую реализнуть на свежую голову.

    Хотя любопытство по поводу IdLogFile всё равно осталось. Завтра, возможно, попытаю самих разработчиков на их форумах по поводу использования их детища.

    Спасибо всем!!!
  • Сергей М. © (15.09.09 17:14) [19]

    > попытаю самих разработчиков


    Скорее всего они отправят тебя лесом, порекомендовав перейти на 10-ку)
 
Конференция "Сети" » Как использовать TIdLogFile с серверами в Indy9? [D7, WinXP]
Есть новые Нет новых   [134437   +29][b:0][p:0.001]