You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@corinthia.apache.org by gb...@apache.org on 2015/08/23 01:54:58 UTC

[2/2] incubator-corinthia git commit: Logging feature update

Logging feature update

Add dedicated general logging macros, set a symlink 'current.log', and
allow local custom log macros with dedicated names for the log file.
Remove the tar file and use snprintf instead strncat and strdup.

Todo:  plug in user defined output function pointer mechanism.

  * Makefile:

    Temporary way to compile the logger.  Usage:
      $ make; ./logMaker

  * log_maker.c:

    Code for the logging functions.

    (#define): Add _GNU_SOURCE.

    (#include): Add "log_maker.h".
                Add <assert.h>.
                Add <error.h>.
                Add <libgen.h>.
                Add <stdarg.h>.
                Add <stdio.h>.
                Add <stdlib.h>.
                Add <string.h>.
                Add <time.h>.
                Add <unistd.h>.
                Add <errno.h>.
                Add <dirent.h>.
                Add <sys/types.h>.
                Add <sys/stat.h>.
                Add <fcntl.h>.
      These are probably not all needed.

    (get_time_string): New function.

    (set_log_output_function): New function.  This is a stub.

    (log_init): New function.  Create the logfile name with host, time
      and program name. Set a symlink 'current.log' into
      ~/../incubator/.

    (set_log_dir): New function.  Set the directory in which to write
      the individual logfiles and the location where the symlonk
      should be created.

    (close_log): New function.  Close the file descriptor and inform
      user about the location and name of the generated file.

    (log_msg_prefix): New function.  Create the prefix containing the
      name of the log level, the file, line number and function name.

    (log_msg): New function. Write the log prefix and log message to
      file.

  * log_maker.h:

    Header file for general inclusion so log_maker.c can be used.

    (#ifndef): Add LOG_MAKER_H.
      Header guard.  Somehow #pragma once does not work for me.

    (#if): Add _MSC_VER.  Picked this up in the docs, apparently MSC
      uses _sprintf instead.

    (#define):  Add LOG_ERR.
                Add LOG_WARNING.
                Add LOG_NOTICE.
                Add LOG_INFO.
                Add LOG_DEBUG.
        These are all strings for now.  I can change it back to numbers, but
        currently those strings are used to print out the log message titles.

    Global variables:

    (char): Add log_filename[filename_len].

    (int): Add log_file_fd.  File descriptor for log file.

    (static int log_level_initialised): Guard to prevent log_init from
      being called twise.

    (char): Add logging_dir[filename_len].

    (char): Add log_symlink[filename_len].

    (LOG_THIS): New function.  Basic macro, called by every custom macro.

    Basic log macros for general usage:

    (LOG_ERROR_MSG): New function.

    (LOG_WARNING_MSG): New function.

    (LOG_NOTICE_MSG): New function.

    (LOG_INFO_MSG): New function.

    (LOG_DEBUG_MSG): New function.

    Prototypes for logmaker.c:

    (set_log_output_function): New function.

    (log_init): New function.

    (set_log_dir): New function.

    (set_log_level): New function.

    (close_log): New function.

    (log_msg_prefix): New function.

  * useLogmaker.c:

    Test code for log_maker.c

    (#include): Add "log_maker.h".
                Add <stdio.h>.
                Add <unistd.h>.

    (LOG_USE_LOGMAKER_MSG): New function.  This is a custom log macro
      that only works for the local file.

    (function_one): New function.  Test every general macro.

    (function_two): New function.  Test base macro 'LOG_THIS' and test
      locally defined macro.

    (main): New function.  Run tests.


Project: http://git-wip-us.apache.org/repos/asf/incubator-corinthia/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-corinthia/commit/e1dc6c9a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-corinthia/tree/e1dc6c9a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-corinthia/diff/e1dc6c9a

Branch: refs/heads/master
Commit: e1dc6c9ab57107d1bdacc144d1ecf1f0edb2d6fd
Parents: a507ec5 2daa000
Author: Gabriela Gibson <gb...@apache.org>
Authored: Sun Aug 23 00:54:47 2015 +0100
Committer: Gabriela Gibson <gb...@apache.org>
Committed: Sun Aug 23 00:54:47 2015 +0100

----------------------------------------------------------------------
 .../src/Toolkit_Layer_1/qt/Editor.cpp           |   16 +-
 .../src/Toolkit_Layer_1/qt/MainWindow.cpp       |   88 +-
 .../src/Toolkit_Layer_1/qt/Toolbar.cpp          |   12 +-
 .../src/Toolkit_Layer_1/qt/moc_qt_classes.cpp   |  185 +-
 .../src/Toolkit_Layer_1/qt/qt_classes.hpp       |  113 +-
 .../src/Toolkit_Layer_1/qt/qt_toolkit.cpp       |   26 +-
 experiments/objcFramework/DocFormats.h          |   79 +
 experiments/objcFramework/EDDocumentSetup.h     |   32 +
 experiments/objcFramework/EDDocumentSetup.m     |  225 +++
 experiments/objcFramework/EDEditor.h            |  112 ++
 experiments/objcFramework/EDEditor.m            |  413 ++++
 experiments/objcFramework/EDFileFormat.h        |   65 +
 experiments/objcFramework/EDFileFormat.m        |  968 ++++++++++
 experiments/objcFramework/EDFindReplace.h       |   48 +
 experiments/objcFramework/EDFindReplace.m       |   82 +
 experiments/objcFramework/EDGeometry.h          |   80 +
 experiments/objcFramework/EDGeometry.m          |  119 ++
 experiments/objcFramework/EDHTMLTidy.h          |   42 +
 experiments/objcFramework/EDHTMLTidy.m          |   58 +
 experiments/objcFramework/EDJSInterface.h       |  365 ++++
 experiments/objcFramework/EDJSInterface.m       | 1775 ++++++++++++++++++
 experiments/objcFramework/EDObservation.h       |   30 +
 experiments/objcFramework/EDObservation.m       |   56 +
 experiments/objcFramework/EDOutline.h           |  132 ++
 experiments/objcFramework/EDOutline.m           |  270 +++
 experiments/objcFramework/EDSaveOperation.h     |   44 +
 experiments/objcFramework/EDSaveOperation.m     |  166 ++
 experiments/objcFramework/EDScan.h              |   64 +
 experiments/objcFramework/EDScan.m              |  138 ++
 experiments/objcFramework/EDScanResults.h       |   73 +
 experiments/objcFramework/EDScanResults.m       |  109 ++
 .../objcFramework/EDSelectionFormatting.h       |   55 +
 .../objcFramework/EDSelectionFormatting.m       |   73 +
 experiments/objcFramework/EDStyle.h             |   59 +
 experiments/objcFramework/EDStyle.m             |  150 ++
 experiments/objcFramework/EDTiming.h            |   80 +
 experiments/objcFramework/EDTiming.m            |  271 +++
 experiments/objcFramework/EDUtil.h              |   41 +
 experiments/objcFramework/EDUtil.m              |  325 ++++
 experiments/objcFramework/EDWordCount.h         |   42 +
 experiments/objcFramework/EDWordCount.m         |   57 +
 experiments/objcFramework/Editor.h              |   40 +
 tree_github_repository.html                     |    4 +-
 tree_local_directory.html                       |    4 +-
 44 files changed, 6877 insertions(+), 309 deletions(-)
----------------------------------------------------------------------