Giter Club home page Giter Club logo

com.advplstore.framework.logging's Introduction

Framework de log para desenvolvimento em AdvPL/TL++.

Este framework adiciona algumas classes de log no repositório de objetos que podem ser invocadas de dentro do seu programa TOTVS. Baseado no SLF4J, Logback e outros frameworks de mercado, este framework se destaca das funções padrões de Log da TOTVS por tratar níveis de log, formatos de exibição e estratégias de gravação.

Como usar?

Clone este repositório ou faça download e então compile todos os arquivos. Exemplo de uso:

User Function LogTest
    Local oLogger
    Local oCustomLogger

    If !TCIsConnected()
		If !RpcSetEnv(COMPANY_CODE, BRANCH_CODE,,,, ProcName())
			ConOut("It was not possible to login in Protheus.")
			Return
		EndIf
	EndIf

    oLogger := Log():New()
    oCustomLogger := Log():New("My custom log")

    oLogger:All("This will be displayed always")
    oLogger:Trace("This is a trace message")
    oLogger:Debug("This is a debug message")
    oLogger:Info("This is an info message")
    oLogger:Warn("This is a warning message")
    oLogger:Error("This is an error message")
    oLogger:Fatal("This is a fatal message")

    oCustomLogger:Info("User {} had a bad experience creating the product {}.", "João", "001")
    oCustomLogger:Info("Bool {}, Integer {}, Char {}, Date {}", .T., 42, "Test", Date())
Return

O nível do log pode ser definido no parâmetro MV_LOGLEVE. Valores válidos são:

  • ALL

  • TRACE

  • DEBUG

  • INFO

  • WARN

  • ERROR

  • FATAL

Se o parâmetro não existir, o valor padrão será INFO.

Caso não passe o nome do log no construtor da classe então o sistema usa a função ProcName para identificar o nome da classe/função de origem.

Parâmetros podem ser passados para o log sem se preocupar com o tipo da variável:

oLogger:Info("My name is {} and I will be {} years old at {}.", "Josh", 42, dDatabase)

Output:

[20/09/2019][22:26:06.913]   [INFO]   My custom log name - My name is Josh and I will be 42 years old at 20/09/2019.

Formatters

Você pode alterar o layout de saída criando um novo formatter com o layout da sua empresa ou do seu cliente. O parâmetro MV_LOGFORM controla qual implementação de formatter usar, caso não exista, o formatter padrão será o DEFAULT.

Appenders

Um appender define como seu log será impresso. Neste repositório atualmente existem dois appenders: CONSOLE e FILE para impressão no console do AppServer e impressão em arquivo de texto respectivamente. O Appender ativo é controlado pelo parâmetro MV_LOGAPP, caso não exista o valor padrão será CONSOLE.

Para o FILE appender, o parâmetro MV_LOGPATH controla a pasta ondes os arquivos de logs são gerados. Caso não exista, os logs serão gerados na pasta Protheus_Data\logs.

Implemente novos appenders conforme sua necessidade.

Contribuição

Este projeto é livre. Use à vontade. Se encontrar algum bug reporte aqui no GitHub e se fizer alguma melhoria no código, contribua com um pull request 😊

com.advplstore.framework.logging's People

Contributors

fredericoferreiracosta avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

fernandoferes

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.