@ -59,7 +59,7 @@ init(Opts) ->
Size = lgUtil : get_opt ( size , Opts , ? LgDefRotateSize ) ,
Size = lgUtil : get_opt ( size , Opts , ? LgDefRotateSize ) ,
Count = lgUtil : get_opt ( count , Opts , ? LgDefRotateCnt ) ,
Count = lgUtil : get_opt ( count , Opts , ? LgDefRotateCnt ) ,
Rotator = lgUtil : get_opt ( rotator , Opts , ? LgDefRotateMod ) ,
Rotator = lgUtil : get_opt ( rotator , Opts , ? LgDefRotateMod ) ,
HWM = lgUtil : get_opt ( hWM , Opts , ? LgDefCheckHWM ) ,
Hwm = lgUtil : get_opt ( hwm , Opts , ? LgDefCheckHwm ) ,
FlushQueue = lgUtil : get_opt ( flushQueue , Opts , ? LgDefFlushQueue ) ,
FlushQueue = lgUtil : get_opt ( flushQueue , Opts , ? LgDefFlushQueue ) ,
FlushThr = lgUtil : get_opt ( flushThr , Opts , ? LgDefFlushThr ) ,
FlushThr = lgUtil : get_opt ( flushThr , Opts , ? LgDefFlushThr ) ,
SyncInt = lgUtil : get_opt ( syncInt , Opts , ? LgDefSyncInt ) ,
SyncInt = lgUtil : get_opt ( syncInt , Opts , ? LgDefSyncInt ) ,
@ -75,18 +75,10 @@ init(Opts) ->
CheckInt = ? IIF ( CfgCheckInt == always , 0 , CfgCheckInt ) ,
CheckInt = ? IIF ( CfgCheckInt == always , 0 , CfgCheckInt ) ,
{ ok , Date } = lgUtil : parseRotateSpec ( CfgDate ) ,
{ ok , Date } = lgUtil : parseRotateSpec ( CfgDate ) ,
FileName = lgUtil : parsePath ( RelName ) ,
FileName = lgUtil : parsePath ( RelName ) ,
FmtCfg =
case CfgFmtCfg of
[ ] - >
MdWhitelist = lgUtil : get_env ( mdWhitelist , [ ] ) ,
lgFmtTer : fmtCfg ( MdWhitelist ) ;
_ - >
CfgFmtCfg
end ,
scheduleRotation ( Date , FileName ) ,
scheduleRotation ( Date , FileName ) ,
Shaper = #lgShaper { hwm = HWM , flushQueue = FlushQueue , flushThr = FlushThr , id = FileName } ,
FmtCfg = ? IIF ( CfgFmtCfg =/= [ ] , CfgFmtCfg , begin MdWhitelist = lgUtil : get_env ( mdWhitelist , [ ] ) , lgFmtTer : fmtCfg ( MdWhitelist ) end ) ,
Shaper = #lgShaper { hwm = Hwm , flushQueue = FlushQueue , flushThr = FlushThr , id = FileName } ,
TemState = #state {
TemState = #state {
fileName = FileName , level = Level , size = Size , date = Date
fileName = FileName , level = Level , size = Size , date = Date
, count = Count , rotator = Rotator , shaper = Shaper
, count = Count , rotator = Rotator , shaper = Shaper
@ -114,13 +106,13 @@ handleCall({mSetLogLevel, Level}, #state{fileName = FileName} = State) ->
end ;
end ;
handleCall ( { mSetLogHwm , Hwm } , #state { shaper = Shaper , fileName = FileName } = State ) - >
handleCall ( { mSetLogHwm , Hwm } , #state { shaper = Shaper , fileName = FileName } = State ) - >
case checkOpts ( [ { hWM , Hwm } ] , true ) of
case checkOpts ( [ { hwm , Hwm } ] , true ) of
false - >
false - >
{ reply , { error , bad_log_h wm } , State } ;
{ reply , { error , badH wm } , State } ;
_ - >
_ - >
NewShaper = Shaper #lgShaper { hwm = Hwm } ,
NewShaper = Shaper #lgShaper { hwm = Hwm } ,
? INT_LOG ( notice , " Changed loghwm of ~ ts to ~p " , [ FileName , Hwm ] ) ,
? INT_LOG ( notice , " Changed loghwm of ~ ts to ~p " , [ FileName , Hwm ] ) ,
{ reply , { last_logh wm , Shaper #lgShaper.hwm } , State #state { shaper = NewShaper } }
{ reply , { lastH wm , Shaper #lgShaper.hwm } , State #state { shaper = NewShaper } }
end ;
end ;
handleCall ( mRotate , State = #state { fileName = File } ) - >
handleCall ( mRotate , State = #state { fileName = File } ) - >
{ ok , NewState } = handleInfo ( { mRotate , File } , State ) ,
{ ok , NewState } = handleInfo ( { mRotate , File } , State ) ,
@ -175,7 +167,7 @@ handleInfo({mShaperExpired, Name}, #state{shaper = Shaper, fileName = Name, fmtT
ReportMsg = #lgMsg { severity = ? warning , pid = self ( ) , node = node ( ) , module = ? MODULE , function = ? FUNCTION_NAME , line = ? LINE , metadata = [ ] , datetime = NowStr , timestamp = NowMs , message = ReportStr , destinations = [ ] } ,
ReportMsg = #lgMsg { severity = ? warning , pid = self ( ) , node = node ( ) , module = ? MODULE , function = ? FUNCTION_NAME , line = ? LINE , metadata = [ ] , datetime = NowStr , timestamp = NowMs , message = ReportStr , destinations = [ ] } ,
writeLog ( State , NowMs , ? warning , FmtTer : format ( ReportMsg , FmtCfg ) )
writeLog ( State , NowMs , ? warning , FmtTer : format ( ReportMsg , FmtCfg ) )
end ,
end ,
{ ok , State #state { shaper = Shaper #lgShaper { dropped = 0 , mps = 0 , lastTime = lgTime : now ( ) }} } ;
{ ok , State #state { shaper = Shaper #lgShaper { dropped = 0 } } } ;
handleInfo ( _ Msg , _ State ) - >
handleInfo ( _ Msg , _ State ) - >
? ERR ( " ~p info receive unexpect msg ~p ~n " , [ ? MODULE , _ Msg ] ) ,
? ERR ( " ~p info receive unexpect msg ~p ~n " , [ ? MODULE , _ Msg ] ) ,
kpS .
kpS .
@ -274,7 +266,7 @@ checkOpts([{count, Count} | Tail], IsFile) when is_integer(Count), Count >= 0 ->
checkOpts ( Tail , IsFile ) ;
checkOpts ( Tail , IsFile ) ;
checkOpts ( [ { rotator , Rotator } | Tail ] , IsFile ) when is_atom ( Rotator ) - >
checkOpts ( [ { rotator , Rotator } | Tail ] , IsFile ) when is_atom ( Rotator ) - >
checkOpts ( Tail , IsFile ) ;
checkOpts ( Tail , IsFile ) ;
checkOpts ( [ { hWM , HighWaterMark } | Tail ] , IsFile ) when is_integer ( HighWaterMark ) , HighWaterMark > = 0 - >
checkOpts ( [ { hwm , HighWaterMark } | Tail ] , IsFile ) when is_integer ( HighWaterMark ) , HighWaterMark > = 0 - >
checkOpts ( Tail , IsFile ) ;
checkOpts ( Tail , IsFile ) ;
checkOpts ( [ { date , _ Date } | Tail ] , IsFile ) - >
checkOpts ( [ { date , _ Date } | Tail ] , IsFile ) - >
checkOpts ( Tail , IsFile ) ;
checkOpts ( Tail , IsFile ) ;