Лог действий в SQL

Теги:
 

stiff

разработчик l2j-сервера
Как сделано у них:
Поля:
act_time= Время
log_id=id лога
actor= id чара
actor_account=id аккаунта
target=id объекта чара
target_account =id объекта аккаунта
location_x=позиция x
location_y=позиция y
location_z=позиция z
etc_str1=Титул чара
etc_str2=Имя Клана
etc_str3=?
etc_num1=Раса чара
etc_num2=?
etc_num3=Класс чара
etc_num4=Левел чара
etc_num5=?
etc_num6=?
etc_num7=?
etc_num8=id придмета
etc_num9=Взял/выбросили
etc_num10=Было Всего
STR_actor=Имя чара
STR_actor_account=Имя аккаунта
STR_target=имя объкта чара
STR_target_account=имя аккаунта
item_id=номер придмета(в таблице uset_item)
 

значения log_id:
// Chat

0 = General
1 = Shout
2 = Whisper
3 = Party
4 = Clan
6 = Petition from a user
7 = GM Petition
8 = Trade
9 = Alliance
// NPC

103 = CreatePet
104 = DeletePet
105 = WithDrawPet
106 = DepositPet
107 = ChangePetName
108 = DismissPet
109 = PetGetItem
110 = PetDropItem
111 = GiveItemToPet
112 = GetItemFromPet
113 = PetUseItem
114 = PetDie
// Clan

201 = CreatePledge
202 = JoinPledge
203 = DismissPledge
204 = WithdrawPledge
205 = OustPledge
206 = NicknamePledge
207 = BeginPledgeWar
208 = StopWar
209 = SurrenderWar
210 = WinWar
211 = CrestPledge
212 = FinishWar
213 = UpdateCastleOwner
214 = WriteTax
215 = SetPledgeInfo
216 = DeletePledgeByTimer
217 = SetUserPledgeInfo
218 = ChallengeRejected
219 = InstallBattleCamp
220 = UninstallAllBattleCamp
221 = UninstallBattleCamp
222 = SetNextSiegeTime
223 = RegisterAsAttacter
224 = RegisterAsDefender
225 = UnregisterCastleWar
226 = ConfirmCastleDefence
227 = ResetCastleSiegePledge
228 = TryPossessHolyThing
229 = DoorHpChanged
230 = SetPledgeContribution
231 = SetWinnerPledgeContribution
232 = UpdateAgitOwner
233 = SetDoorOpenClose
234 = SaveCastleIncome
235 = InstallAgitDeco
236 = TryDismissPledge
237 = SetNextCastleSiege
238 = CreateAgitAuction
239 = CreateAgitBid
240 = SetAgitAuction
241 = CancelAgitAuction
242 = CancelAgitBid
243 = AutoAgitAuction
244 = WinSiege
245 = WinSiegeAlliance
246 = AgitCost
247 = UndoDismissPledge
248 = CreateAlliance
249 = JoinAlliance
250 = DismissAlliance
251 = OustAlliance
252 = WithdrawAlliance
// Item

901 = BuyItem
902 = SellItem
903 = Deposit
904 = Retrieve
906 = GetItem
907 = DeleteItem
908 = Drop
909 = TradeGive
910 = TradeGet
911 = Use
912 = NPCDrop
913 = NPCShowSellPage
914 = NPCShowBuyPage
915 = DropItemWhenDied
916 = TradeDone
917 = TradeCanceled
918 = BeginTrade
919 = BeginDeposit
920 = DepositDone
921 = DepositCanceled
922 = BeginRetrieval
923 = RetrievalDone
924 = RetrievalCanceled
925 = EnchantItem
926 = EnchantItemFail
927 = DepositToWarehouse
928 = DespositFee
929 = RetrieveFromWarehouse
930 = SetPrivateMsg
931 = PrivateStoreSell
932 = PrivateStoreBuy
933 = CrystalizeItem
934 = RecipeDelete
935 = RecipeCreate
936 = ShipDepart
937 = ShipKicked
938 = UseArrow
939 = UseTelepoter
940 = RelatedItem
941 = SetBuyPrivateMsg
942 = ItemAddFailed
943 = RetrieveFromCastleWarehouse
944 = DepositToCastleWarehouse
945 = DepositFee2
946 = KeepPackage
947 = KeepPackageFee
948 = BuyItemTax
949 = PrecedenceTax
950 = CastleTax
951 = SearchTax
// Skill

401 = LearnSkill
402 = DeleteSkill
403 = CastSkill
405 = CancelSkill
406 = Dispell
407 = DispellAll
// Web administrator

601 = CheckCharacter
602 = SetCharLocation
603 = SetBuilderCharacter
604 = ChangeCharName
605 = KickChar
606 = AddSkill
607 = DelSkill
608 = ModSkill
609 = SetOneTimeQuest
610 = SetQuest
611 = DelQuest
612 = AddItem
613 = DelItem
614 = ModItem
615 = ModChar
616 = ModChar2
617 = ModCharPledge
618 = PunishChar
619 = SetBuilderAccount
620 = DisableChar
621 = EnableChar
622 = GetChars
623 = SetBookmark
624 = DelBookmark
625 = SeizeItem
626 = Modchar3
627 = MoveItem
628 = MoveChar_DisableChar
629 = MoveChar
630 = WriteComment
631 = DeleteComment
632 = DeleteCharCompletely
633 = RestoreChar
634 = OustPledge
635 = ChangePledgeOwner
636 = DeletePledge
637 = BanChar
638 = AddItem2
639 = DelItem2
640 = MoveItem2
641 = CopyChar
642 = CreatePet
// Administrator

501 = DebugChar
502 = SummonNpc
503 = SummonItem
504 = SetParam
505 = SetSkill
506 = TeleportToBookmark
507 = SetOneTimeQuest
508 = SetQuest
509 = KillMe
510 = Home
511 = SetAI
512 = SetKarma
513 = StopSay
514 = StopLogin
515 = GMListOn
517 = Petition
518 = Recall
519 = TeleportTo
520 = Kick
521 = Announce
522 = SetAnnounce
523 = DelAnnounce
524 = SetBuilder
525 = Summon
526 = DelSkill
527 = DelQuest
528 = UnregisterCastlePledge
529 = SetDoorHp
530 = SetPledgeLevel
531 = SetSiege
532 = SetQuickSiege
533 = SetCastleStatus
534 = Defend
535 = Attack
536 = SetCastleOwner
537 = SetBp
538 = Polymorph
539 = SendHome
// Character

801 = Authed
802 = Login
803 = EnterWorld
804 = Logout
805 = LeaveWorld
806 = CreateChar
807 = DeleteChar
808 = ChangeName
810 = ChangeCharLevel
811 = Teleport
812 = SaveCharInfo
813 = SaveCharItemInfo
814 = SaveQuest
815 = SaveOnetimeQuest
816 = ChangeCharClass
817 = CreateParty
818 = JoinParty
819 = DismissParty
820 = WithdrawParty
821 = OustParty
822 = Stand
823 = Sit
824 = EquipItem
825 = PCAttackPc
826 = PCAttackNpc
827 = NPCAttackPc
828 = NPCAttackNpc
829 = RestoreDeletedChar
830 = ConfirmDeleteChar
831 = Leaveworld2
832 = SayCount
833 = EquipedItems
834 = DelCharByDelAccount
835 = CharLimitExceed
836 = PartyCount
837 = CharCount
838 = EndPrivateStore
// Quest

301 = GetQuestItem
302 = DeleteQuestItem
303 = BeginQuest
304 = UpdateQuest
305 = DelQuest
306 = SetOneTimeQuest
307 = StopQuest
// Death

1101 = PCDie
1105 = NPCKilledPlayer
1106 = NPCKilledNPC
1111 = PCKilledPlayer
1112 = PCKilledNPC
1113 = KillByDuel
1114 = KillByPK
1115 = Restart
1116 = SummonedNPCKillPC
1117 = GotHeightDamage
1118 = RessurectBy
1119 = DieDropItemCount
1120 = PcDamagedBy
// Audit

1401 = CacheDAuditItemInfo
1402 = NPCSpawn
1403 = NPCDropItem
1404 = AuditItem
1405 = InvalidAdena
 


Вопрос: стоит ли
- делать как у них 1:1
- писать все действия в 1 таблицу
- выносить это в отдельную базу
?

Есть ли у кого-нить более полная расшифровка полей?

Хочу заняться логами в ближайшее время.
 
+
-
edit
 

Zzahar

втянувшийся
stiff> Вопрос: стоит ли
stiff> - делать как у них 1:1
Наверное в этом нет необходимости.
Хорошо было-бы только сохранить саму структуру логов, чтобы логи описывающие одну и ту-же сущность имели схожие ID. Например все логи описывающие транзикции вещей имели id 7xx, и чтобы в пределах одной такой большой группы характеристики сущности(скажем type_id и количество вещи) записывались в одни и те-же поля.

stiff> - писать все действия в 1 таблицу
Мне кажется лучше создавать скажем таблицу на сутки. Иначе она очень разрастётся.
L2JZsystem - система управления сервером.  
+
-
edit
 

LuciferX

втянувшийся
stiff> Как сделано у них:
stiff> Вопрос: стоит ли
stiff> - делать как у них 1:1
stiff> - писать все действия в 1 таблицу
stiff> - выносить это в отдельную базу
stiff> ?
stiff> Есть ли у кого-нить более полная расшифровка полей?
stiff> Хочу заняться логами в ближайшее время.
Стиф, вопрос: а у "них" это у кого, если конечно не секрет? :D
Владение русским языком как боевое искусство: настоящие мастера не используют без необходимости.  

stiff

разработчик l2j-сервера
как на оффе
 

naksa

разработчик L2J Fortress
stiff>> - делать как у них 1:1
Zzahar> Наверное в этом нет необходимости.
Zzahar> Хорошо было-бы только сохранить саму структуру логов, чтобы логи описывающие одну и ту-же сущность имели схожие ID. Например все логи описывающие транзикции вещей имели id 7xx, и чтобы в пределах одной такой большой группы характеристики сущности(скажем type_id и количество вещи) записывались в одни и те-же поля.

коды полюбому стоит брать как у "них", а сама структура... в любом случае human readable не нужен, лишняя трата места, пусть приведением в удобоваримый вид занимается отдельная программа, т.е. что-то из структуры "их" логов стоит взять.
 
+
-
edit
 

TD_ALECS

втянувшийся
Я предлогал stiff сделать лог на каждую операцыю отделный свой лог.
Тоесть, чел покупает в магазине или продаёт туда, это отдельный лог, mershant_log
Чел передаёт другому челу, тоже это отдельно.
В общем на каждую операцию героем отдельный лог.
То что чел поднял когда ему дропнуло с моба, или попало в инвентрь от Гм или читера, всё делать отдельным логом, файлом.
Так легче искать, если нужно найти что то.
А весь лог со всеми операциями очень большой, и копатся там жуть как не удобно.
Особенно когда вскрывают пароли и раздевают челов, в общем логе просто не реал найти хотя бы по поиску имени чара, это долго.
Server L2j- 1=> http://lineage.cybernet.by Server L2j- 2=> http://game.iptel.by [img]http://total-disconnect.at.tut.by/logoiptel.jpg[/img]  
+
-
edit
 

airman

разработчик l2j-сервера

А что для логов комманду grep ктото отменил??? Ой, простите, забыл, в windows ее поумолчанию нет, но никто не мешает поставить ее порт. Хотя идея здравая.
Злобный флудер дерзко ложит маты модеру на форум!!! Злобный модер робко прячет тело флудера в корзине!!!  
+
-
edit
 
Ну ультраедитом тоже можно выборку делать... Но с SQL удобнее работать просто. Например как ты сделаешь через grep выборку всех сообщений о попытке юзания конкретного бага за определенный промежуток времени для игроков уровня х состоящих в клане у? Это к примеру.
Пытаясь понять рекурсию, следи за тем, чтобы она не поняла тебя первой...  

Murkt

Pythoneer

grep рулит, но SELECT DISTINCT FROM LEFT JOIN ON WHERE ORDER BY LIMIT круче :)
[team Їжачки - сумні падлюки]  

stiff

разработчик l2j-сервера
airman> А что для логов комманду grep ктото отменил??? Ой, простите, забыл, в windows ее поумолчанию нет, но никто не мешает поставить ее порт. Хотя идея здравая.
в винде есть аналог
 
AD Реклама Google — средство выживания форумов :)

SBL

втянувшийся
Murkt> grep рулит, но SELECT FROM LEFT JOIN ORDER BY круче :)

Where забыл :-)
Life is what really happens while you are making other plans....  

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru