1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
ˆic@sNdZddlZddlZddlmZddd„ƒYZeƒZdS(s:
·â°üÈÕ־ģ¿é
ÌṩͳһµÄÈÕÖ¾¼Ç¼¹¦ÄÜ,Ö§³ÖÊ®Áù½øÖƸñʽÊä³ö
iÿÿÿÿN(t ConfigReadert PacketLoggercBs_eZdZd
Zd„Zed„ƒZd„Zd„Z    d„Z
dd„Z dd    „Z RS( s·â°üÈÕÖ¾¼Ç¼Æ÷µ¥ÀýcCs@|jdkr9tt|ƒj|ƒ|_t|j_n|jS(N(t    _instancetNonetsuperRt__new__tFalset _initialized(tcls((s!.\\EventServerPY\packet_logger.pyRscCs%|jdkr|ƒ|_n|jS(s »ñÈ¡µ¥ÀýʵÀýN(RR(R((s!.\\EventServerPY\packet_logger.pytinstancescCs{t|dƒr|jrdSt|_tjƒ}|jƒ|_|jƒ|_d|_
d|_ |jrw|j ƒndS(NR( thasattrRtTrueRR    tget_enable_packet_logtenabletget_packet_log_pathtlog_pathRtlog_dirtlog_filet_init(tselftconfig((s!.\\EventServerPY\packet_logger.pyt__init__ s                 cCsðy¾tjj|jƒs+tj|jƒntjjƒ}|jdƒ}tjj|j|dƒ|_    tjj|j    ƒstj|j    ƒnd|jdƒ}tjj|j    |ƒ|_
Wn+t k
rë}dt |ƒGHt |_nXdS(s³õʼ»¯ÈÕ־ϵͳs%Y-%mt EventServers packet_%s.logs%Y%m%ds[PacketLogger] Init error: %sN(tostpathtexistsRtmakedirstdatetimetnowtstrftimetjoinRRt    ExceptiontstrRR (Rttodayt    date_patht log_filenamete((s!.\\EventServerPY\packet_logger.pyR2scCsg|js dStjjƒ}d|jdƒ}tjj|j|ƒ}||jkrc|j    ƒndS(s¼ì²éÈÕÆÚ±ä»¯,±ØÒªÊ±Çл»ÈÕÖ¾ÎļþNs packet_%s.logs%Y%m%d(
R RRRRRRRRR(RR!R#tcurrent_log_file((s!.\\EventServerPY\packet_logger.pyt_check_date_changeIs    tRECVc CsÿdS|jsdSyÅ|jƒtjjƒ}|jdƒd }djg|D]5}t|ttfƒrxdt    |ƒnd|^qMƒ}d||||t
|ƒ|f}    t |j dƒ}
|
j |    ƒWdQXWn"tk
rú} dt| ƒGHnXdS(    sã
        ¼Ç¼·â°üÈÕÖ¾
 
        Args:
            cid: ¿Í»§¶ËID
            packet_data: ·â°üÊý¾Ý(×Ö·û´®)
            packet_type: ·â°üÀàÐÍ(Èç LOGIN, EVENT, HEARTBEATµÈ)
            direction: ·½Ïò(RECV=½ÓÊÕ, SEND=·¢ËÍ)
        Ns%Y-%m-%d %H:%M:%S.%fiýÿÿÿs s%02Xs([%s] [%s] CID=%d Type=%s Len=%d Data=%s
tas[PacketLogger] Write error: %s(R R&RRRRt
isinstanceR tunicodetordtlentopenRtwriteR( Rtcidt packet_datat packet_typet    directionR!t    timestamptbthex_datatlog_linetfR$((s!.\\EventServerPY\packet_logger.pytlogVs&
    
K    
tINFOcCs¡|js dSyk|jƒtjjƒ}|jdƒd }d|||f}t|jdƒ}|j|ƒWdQXWn"tk
rœ}dt    |ƒGHnXdS(sz
        ¼Ç¼Îı¾ÈÕÖ¾
 
        Args:
            text: ÈÕÖ¾Îı¾
            prefix: ÈÕ־ǰ׺(INFO, WARN, ERRORµÈ)
        Ns%Y-%m-%d %H:%M:%S.%fiýÿÿÿs [%s] [%s] %s
R(s[PacketLogger] Write error: %s(
R R&RRRR-RR.RR (RttexttprefixR!R3R6R7R$((s!.\\EventServerPY\packet_logger.pytlog_text€s    
N( t__name__t
__module__t__doc__RRRt classmethodR    RRR&R8R<(((s!.\\EventServerPY\packet_logger.pyRs                 *((R?RRRRRt packet_logger(((s!.\\EventServerPY\packet_logger.pyt<module>s
  ‘