5 Haziran 2017 Pazartesi

log init_from_stream metodu

Giriş
Şu satırı dahil ederiz.
#include <boost/log/utility/setup.hpp>
Ya da şu satırı dahil ederiz.
#include <boost/log/utility/setup/from_stream.hpp>
Bu metod çağrılmadan önce common attributes tanımlı olmalıdır.
Şu satırı dahil ederiz.
#include <boost/log/utility/setup/common_attributes.hpp>
Şöyle yaparız.
boost::log::add_common_attributes();
RotationTimePoint Parametresi
Açıklaması şöyle
You can set either periodic rotation by setting RotationInterval to the number of seconds between rotations, or RotationTimePoint to the time point at which the rotation happens.

init_from_stream metodu - ifstream
Şöyle yaparız.
std::ifstream file ("settings.ini");
boost::log::init_from_stream (file);
.ini dosyası
FileName
Açıklaması şöyle
Boost really operates such that it creates the log file in the application directory, and only copies it to the destination when it is closed (log rotates or the program exists). So, in order to get all the log files appear in a specific directory, one has to include the directory name in the filename pattern as well as in the target.
Şöyle yaparız.
[Sinks.SYSLF]
...
Target="logs"
FileName="logs/dsmip_%N.log"
Örnek 1
Şöyle yaparız
[Sinks.ConsoleOut]
Destination=Console
AutoFlush=true
Format="[%TimeStamp(format=\"%Y.%m.%d %H:%M:%S\")%]: %Message%"
Örnek 2
Şöyle yaparız.
[Core]
DisableLogging="false"

[Sinks.SYSLF]
Destination="TextFile"
Asynchronous="true"
AutoFlush="true"
Format="[%TimeStamp(format=\"%Y-%m-%d %H:%M:%S.%f\")%][%Severity%] %Message%"
Target="logs"
FileName="dsmip_%N.log"
RotationTimePoint="00:00:00"
ScanForFiles="Matching"
MaxSize="10000000"
Filter="%Severity% >= info"

[Sinks.Console]
Destination="Console"
AutoFlush="true"
Format="[%TimeStamp(format=\"%Y-%m-%d %H:%M:%S.%f\")%][%Severity%] %Message%"
Filter="%Severity% >= debug"
Örnek 3
Console için şöyle yaparız
Destination=Console
Format="<%Timestamp%> - %Severity% - %Message%"
Asynchronous=false
AutoFlush=true

Dosya için şöyle yaparız
Destination=TextFile
Target=./Logs
FileName="MyApp%3N.log"
Format="<%Timestamp%> - %Severity% - %Message%"
RotationSize=104857600 yani 100MB
MaxSize=104857600
AutoFlush=false

init_from_stream metodu - stringstream
Şöyle yaparız.
std::stringstream s;
s << "[Sinks.MySink]" << std::endl;
s << "Destination=Console" << std::endl;
s << "Format=\"%LineID%: <%Severity%> - %Message%\"" << std::endl;
boost::log::init_from_stream (s);


Hiç yorum yok:

Yorum Gönder