Code Monkey home page Code Monkey logo

cutelogger's People

Contributors

alorence avatar bad-login avatar cyberbobs avatar dsbabkov avatar happy520 avatar igelhaus avatar ivanpinezhaninov avatar khreichel avatar mtuner avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cutelogger's Issues

Логгирование нескольких экземпляров исполнителя с ротацией

Привет!
Прошу подсказать, возможно ли выполнить логгирование сразу нескольких запущенных экземпляров приложения а так же обеспечить своевременную чистку логов?

Мой код сейчас выглядит следующим образом:

void setupLogger(){
    const QString LOG_DIR("log");
    const QString &localDataPath = QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation);
    QDir().mkpath(localDataPath);
    QDir(localDataPath).mkdir(LOG_DIR);

    qDebug() << "Log dir:" << qUtf8Printable(localDataPath);

    ConsoleAppender *consoleAppender = new ConsoleAppender;
    consoleAppender->setFormat("[%{Type:-7}] %{message}\n");


    RollingFileAppender *fileAppender = new RollingFileAppender(QStringLiteral("%1/%2/log").arg(localDataPath).arg(LOG_DIR));
    fileAppender->setDatePattern(RollingFileAppender::DailyRollover);
    fileAppender->setLogFilesLimit(100);
    fileAppender->setFormat("[%{time}] [%{Type:-7}] %{message:-150} %{function:-40} %{line:-4}\n");


    Logger::globalInstance()->registerAppender(consoleAppender);
    Logger::globalInstance()->registerAppender(fileAppender);
}

Буду очень признателен за помощь

QtTest vs. CuteLogger

This is with Qt 4.8.4 and the latest CuteLogger revision.

#include "Logger.h"
#include <QtTest>

int main()
{
  return 0;
}

Which gives this compiler error:

c:\qt\4.8.4\include\qttest\../../src/testlib/qtestbasicstreamer.h(50) : error C2270: 'loggerInstance' : modifiers not allowed on nonmember functions
c:\qt\4.8.4\include\qttest\../../src/testlib/qtestbasicstreamer.h(50) : error C2091: function returns function

The problem is the following line in Logger.h:

#define logger loggerInstance()

because qtestbasicstreamer.h has this:

const QTestLogger *logger() const;

As a workaround I've included QtTest before including Logger.h.

Crash in ~Logger()

Приветствую!
Надеюсь, меня поймут :)

Хороший логгер, спасибо за мое время. Однако, обнаружил тут мелкий глюк в деструкторе.

Logger::~Logger()
{
Q_D(Logger);

// Cleanup appenders
QMutexLocker appendersLocker(&d->appendersMutex);
foreach (AbstractAppender* appender, d->appenders)
delete appender;

// Cleanup device
delete d->logDevice;

delete d_ptr;
}

appendersLocker пытается разлокать мутекс по выходу из деструктора, но мутекс уже уничтожен, т.к. он сидит в d_ptr - падает, соответственно.
доп. область видимости спасла бы "отца русской демократии" :)

how to set Level for log?

i want message which level>Info, if level < Info, it shoudn't log to consle/file, how to do this?

deprecated register

Hello! There is a little warning in AbstractStringAppender.cpp:287:
'register' storage class specifier is deprecated and incompatible with C++1z [-Wdeprecated-register]
register char c = info.at(pos);
^~~~~~~~~

I would improve this, but don't know what is 'register' for.

clang 3.8.0

exception when using FileAppender::setFileName

HI,
I'm using this library and it seems to work very good, but today I test the change of filename at runtime (basically I'm using a Qtimer to periodically check if the reference date is below at least 1 day from the current date. If yes, I'm calling setFileName to change the name of log file) and I got an exception every time I'm calling this function (I don't understand why, since the library has a Qmutex to protect the file name) more than 1 time.

Any suggestion or more information you need to understand what happens?

Thanks

How to connect to the Android?

Good afternoon!
Thank you for a great module! I built it and connected to the project. Ubuntu. Everything is working.

// .pro file:
INCLUDEPATH += ./include/CuteLogger/include \
    ./libs/Logger

LIBS += -L libs/Logger -lLogger

Now I would like to try it on android device.

// .pro file:
android {
    QT += androidextras
    ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android
    ANDROID_EXTRA_LIBS += $$PWD/android/libs/armeabi-v7a/libLogger.so
    OTHER_FILES += android/AndroidManifest.xml
}
INCLUDEPATH += ./include/CuteLogger/include \
#    ./libs/Logger
#LIBS += -L libs/Logger -lLogger

But the error occurs:
undefined reference to 'ConsoleAppender::ConsoleAppender()'

Please tell me how to connect the library to the application for android?

Disable escaping

Hello! I'd like to switch off escaping in my log. Is it possible?
When I log JSON fragment via LOG_TRACE() to debug console, it contains ugly \" and \n elements.
Is the problem linked with noquote?

example RollingFileAppender

RollingFileAppender example

#include "Logger.h"
#include "RollingFileAppender.h"

RollingFileAppender* rollfile = new RollingFileAppender("test.log");
//roll every minute
rollfile->setDatePattern(RollingFileAppender::MinutelyRollover);
//3 logfile been retained
rollfile->setLogFilesLimit(3);
cuteLogger->registerCategoryAppender("categoryId",rollfile);
LOG_CERROR("categoryId")<<"roll every minute and retain 3 file";

Error in RollingFileAppender.cpp

Error in RollingFileAppender.cpp line 55.

Qt does not support pattern "yyyy-ww" (such as ISO 8601). WeeklyRollover does not work.

Add README.md file

Hi! First of all, thanks for the such good project! Really useful.

In my opinion, the project lacks Readme file. I know, that user can use Doxygen to generate all documentation or read Logger.cpp file. But when you open project page and are trying to understand what this all about, how to use it and what features this project have, you see only bunch of the files and brief "Logger: simple, convinient and ...". Well, not so "user-friendly" =)

Thanks!

__declspec(dllimport)

AbstractAppender.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) const akso::AbstractAppender::vftable'" (__imp_??_7AbstractAppender@akso@@6B@) AbstractStringAppender.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) const akso::AbstractStringAppender::vftable'" (_imp??_7AbstractStringAppender@akso@@6b@)
ConsoleAppender.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) const akso::ConsoleAppender::`vftable'" (_imp??_7ConsoleAppender@akso@@6b@)

Should add "private:" keyword before Q_DISABLE_COPY

this is how Q_DISABLE_COPY being declared in qglobal.h:

/*
   Some classes do not permit copies to be made of an object. These
   classes contains a private copy constructor and assignment
   operator to disable copying (the compiler gives an error message).
*/
#define Q_DISABLE_COPY(Class) \
    Class(const Class &); \
    Class &operator=(const Class &);

connect log string to Qt Slot ?

Hello, I want to print out all logging messages to a QListWidet. This is wrapped in a Qt Class which contains the function void widgetMessageList::addString(QString & message)

I would like to know if there is a method within cutelogger to connect to a slot, or use any Appender class to connect the logging string to my class.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.