![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Samotnik |
|
||||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
сабж
Есть приложение TCP/IP нужно сделать элементарную вещь ![]() каждый новый клиент, который коннектицца к серверу должен писаться в отдельный файл. Т.Е. законнектился первый - для него создался файл и туда пишется все то, что присылает этот клиент. И так для каждого.
Вот этот вывод нужно писать с помощью логов в отдельные файлы Соббсно сам вопрос Как сконфигурять log4j.xml ? ![]() Добавлено через 10 минут на данный момент у меня такая вот конфигурация
|
||||
|
|||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
Т.Е. законнектился первый - для него создался .. логгер. Однако сразу после accept имя пользователя как правило неизвестно. Поэтому мы всех пишем в единый лог. И сохраняем там ip. После того, как имя стало известно, то и имя добавляем в соответствующую позицию. А анализируем логи с помошью программ baretail - нужного пользователя можно выделить с помощью фильтров. И в то же время можно видеть общую картину. ЗЫ Ну, не принижайте без нужды наше ремесло - "элементарная задача" ![]() Это сообщение отредактировал(а) COVD - 20.1.2009, 01:14 |
|||
|
||||
ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 33 Всего: 81 |
||||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
не я не про то
![]() Я отлавливаю каждое новое соединение (пример кода я выложил) При каждом новом соединении у меня пишется System.out.println("New connection!"); так вот я спрашиваю как сделать эту же запись тока в разные файлы ??? т.е. сейчас у меня все пишется в один файл (file.log) типа
а мне нужно чтобы эти соединения писались в разные файлы, т.е. к примеру file1.log клиент 1 соед file2.log клиент 2 соед file3.log клиент 3 соед |
|||
|
||||
ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 33 Всего: 81 |
Samotnik, я тебя понял, что ты хочешь. Но на каждый сеанс по файлу - по мне, плохая идея. По пользователю - нормально, но сначала аутентификация, а до этого логи куда девать? Того, что ты хочешь - самый нормальный вариант - по IP. Но в текущей реализации log4j конфигурированием этого, по моему, не сделать. Только если написать свой Appender. Но, как уже сказал COVD, с использованием программ для анализа логов, такая необходимость отпадает.
|
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
возможно но нужно сделать именно так ! неужто нету способов писать все не в один файл в одном аппендере, а в много файлов ? К новому файлу добавлять цифирку ? Добавлено через 1 минуту и 15 секунд окей и как это сделать по ип ? как это сделать ? без сторонних тулзов |
|||
|
||||
vdweller |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 1.2.2008 Репутация: нет Всего: нет |
Статическим конфигом так не сделать скорее всего, тебе придется в рантайме после создания логгера задавать ему имя файла
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Стандартные аппендеры такого не позволяют. Если бы меня уж так прижало реализовывать такую лабуду, я бы написал бы свой аппендер + NDC. Или динамическое создание категорий и конфигурирование аппендеров из кода. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
почему лабуду ? вот допустим есть чат который работает по tcp/ip все клиенты проходят через сервер и вот серверу нужно для каждого клиента создавать свой логгер и вести записи для каждого клиента, как в аське - история общения сохраняется для КАЖДОГО юзера с которым ты говорил, а не все разговоры в одном файле Вот и мне нужно сделать то же самое, никакой лабуды тут не вижу, очень полезная штука! Хранить разговоры каждого клиента в отдельном файле ![]() Добавлено через 47 секунд вобщем ясно, никто ничего не подскажет ![]() |
|||
|
||||
dima32 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 8.10.2008 Репутация: 1 Всего: 1 |
Если тебе непонятно как сделать свой аппендер - вот тут прмер:
http://www.log4j.ru/articles/NewAppender.html Добавлено @ 14:30 ну и как сказал LSD и наверно использование org.apache.log4j.NDC удобно для хранения какой-то id клиента (хотя пойдёт даже Статическая ThreadLocal переменная ) Это сообщение отредактировал(а) dima32 - 20.1.2009, 14:31 |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
ICQ совсем другое дело. 1. Это не логи, а история сообщений. 2. Количество контактов в ICQ фиксировано, в отличие от количества IP адресов. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: 8 Всего: 191 |
dima32, спасибо, только я не понимаю, а что делать со своим аппендером ?
Каким образом его применить в нужных мне целях ? ![]() ![]() ![]() ![]() За ссылку спасибо ![]() ![]() |
|||
|
||||
ivg |
|
|||
![]() Autonomous R&D ![]() ![]() Профиль Группа: Участник Сообщений: 686 Регистрация: 8.2.2006 Где: Екатеринбург Репутация: 33 Всего: 81 |
Samotnik, сохранение истории сообщений в чате - это функционал самого приложения, а не библиотек типа log4j. То есть с помощью log4j так или иначе можно получить то что ты хочешь. Только вот вопрос а надо ли? Я предлагаю отказаться от идеи - хранить это дело в файлах. Сообщения каждого пользователя имеют смысл вместе с сообщениями других участников, так ведь? Если в общем чате несколько десятков человек, в файл каждого из них ты будешь сохранять одну и туже информацию(сообщения всех участников)? Или только одного человека? А как потом собирать всё это в диалог? Нам ведь нужны простые решения так ведь? Если пользователь захочет посмотреть историю весь файл будешь пересылать? Или в твоём случае эти логи нужны только "большому брату"?
![]() Короче, если делать как в ICQ, предоставлять пользователю выборку истории за определённый период времени, фильтры на пользователей и т. п. однозначно ИМХО, лучшим местом хранения сообщений будет база данных. |
|||
|
||||
dima32 |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 8.10.2008 Репутация: 1 Всего: 1 |
Примерно так. Как уже было сказано - log4j не обязательно
ну и конфиг будет примерно такой
Это сообщение отредактировал(а) dima32 - 23.1.2009, 11:06 |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |