aboutsummaryrefslogtreecommitdiffstats
path: root/ui/console.c
AgeCommit message (Collapse)AuthorFilesLines
2022-01-05wslog: Use a wider type for lineJoão Valverde1-1/+1
2021-12-15wslog: 'struct timespec' is C11, use thatJoão Valverde1-1/+1
2021-12-03Fix logging with extcapsJoão Valverde1-2/+2
Extcaps require a log file when invoked in child mode. It also has a specific flag to enable debugging, other that the wslog options. Fix the logging to: 1. Enable debug log level if --debug is used. 2. Do not emit messages to the stderr if debug is enabled. This brings extcap logging to the same feature level it had before wslog replaced GLib logging.
2021-06-29wslog: Prefer more modern time APIsJoão Valverde1-1/+1
Functions clock_gettime() and timespec_get() cover all the platforms we support with sub-second resolution in a a portable manner. Fallback to using time(). Pass a struct timespec to the log writer callback for maximum flexibility.
2021-06-19Replace g_assert() with ws_assert()João Valverde1-0/+1
2021-06-14wslog: Use buffered I/OJoão Valverde1-4/+8
Use standard buffered I/O instead of printing to a string. This is more efficient, cleaner and allows custom output per stream.
2021-06-14wslog: Add support for domain filteringJoão Valverde1-1/+1
A domain filter can be given in the environment variable 'WS_LOG_DOMAINS' or in a command-line options "--log-domains". The filter is specified as a comma separated case insensitive list, for example: ./tshark --log-domains=main,capture Domain data type switches from an enum to a string. There is no constaint on adding new domains, neither in code or at runtime. The string format is arbitrary, only positive matches will produce output.
2021-06-14wslog: Improve code modularity and efficiencyJoão Valverde1-8/+4
Also tweak format for readability.
2021-06-11Refactor our logging and extend the wslog APIJoão Valverde1-109/+15
Experience has shown that: 1. The current logging methods are not very reliable or practical. A logging bitmask makes little sense as the user-facing interface (who would want debug but not crtical messages for example?); it's computer-friendly and user-unfriendly. More importantly the console log level preference is initialized too late in the startup process to be used for the logging subsystem and that fact raises a number of annoying and hard-to-fix usability issues. 2. Coding around G_MESSAGES_DEBUG to comply with our log level mask and not clobber the user's settings or not create unexpected log misses is unworkable and generally follows the principle of most surprise. The fact that G_MESSAGES_DEBUG="all" can leak to other programs using GLib is also annoying. 3. The non-structured GLib logging API is very opinionated and lacks configurability beyond replacing the log handler. 4. Windows GUI has some special code to attach to a console, but it would be nice to abstract away the rest under a single interface. 5. Using this logger seems to be noticeably faster. Deprecate the console log level preference and extend our API to implement a log handler in wsutil/wslog.h to provide easy-to-use, flexible and dependable logging during all execution phases. Log levels have a hierarchy, from most verbose to least verbose (debug to error). When a given level is set everything above that is also enabled. The log level can be set with an environment variable or a command line option (parsed as soon as possible but still later than the environment). The default log level is "message". Dissector logging is not included because it is not clear what log domain they should use. An explosion to thousands of domains is not desirable and putting everything in a single domain is probably too coarse and noisy. For now I think it makes sense to let them do their own thing using g_log_default_handler() and continue using the G_MESSAGES_DEBUG mechanism with specific domains for each individual dissector. In the future a mechanism may be added to selectively enable these domains at runtime while trying to avoid the problems introduced by G_MESSAGES_DEBUG.
2021-04-20Remove unneeded modelines in ui.Gerald Combs1-13/+0
Remove the editor modeline blocks from the source files in ui that use 4 space indentation by running perl -i -p0e 's{ \n+ /[ *\n]+ editor \s+ modelines .* shiftwidth= .* \*/ \s+ } {\n}gsix' $( ag -l shiftwidth=4 $( ag -g '\.(c|cpp|h|m|mm)') ) This gives us one source of indentation truth for these files, and it *shouldn't* affect anyone since - These files match the default in our top-level .editorconfig. - The one notable editor that's likely to be used on these files and *doesn't* support EditorConfig (Qt Creator) defaults to 4 space indentation.
2021-03-06Teach our console log handler to use log domains (Unix)João Valverde1-8/+9
By punting to the default log handler. tshark is using g_log_default_handler(), Qt is too. Is there a reason Wireshark cannot do the same? Using g_defaut_log_handler() allows the user to selectively turn on INFO and DEBUG messages using the environment variable G_MESSAGES_DEBUG. The fact that the output format is now consistent with tshark is also a nice bonus. Ping #17271.
2019-03-14Windows: Console log handler fixups.Gerald Combs1-63/+50
Make sure that we always print log messages on Windows. External programs or scripts (including our test suite) might need to see log messages independent of our console settings. Make sure that we always use our log handler and that its stdout / stderr routing matches GLib's. Flush our log output, which is something that GLib's default handler sometimes doesn't do: https://bugzilla.gnome.org/show_bug.cgi?id=792432 Bug: 15605 Change-Id: I4b17f2cb9269b2c87c21835d82770dae93bbfa20 Reviewed-on: https://code.wireshark.org/review/32412 Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Gerald Combs <gerald@wireshark.org>
2018-05-01Fix comment end after SPDX identifierStig Bjørlykke1-1/+2
Move */ to a separate line below the SPDX identifier. Change-Id: Id1032215449cfccae0933147b45e04b65e0b727f Reviewed-on: https://code.wireshark.org/review/27211 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-02-08replace SPDX identifier GPL-2.0+ with GPL-2.0-or-later.Dario Lombardo1-1/+1
The first is deprecated, as per https://spdx.org/licenses/. Change-Id: I8e21e1d32d09b8b94b93a2dc9fbdde5ffeba6bed Reviewed-on: https://code.wireshark.org/review/25661 Petri-Dish: Anders Broman <a.broman58@gmail.com> Petri-Dish: Dario Lombardo <lomato@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-02-02ui: use SPDX identifiers.Dario Lombardo1-14/+1
Change-Id: I6b05399395bcc35e59b73b4030ba4a05711a7b1a Reviewed-on: https://code.wireshark.org/review/25565 Petri-Dish: Michael Mann <mmann78@netscape.net> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-12-17Log output updates.Gerald Combs1-1/+4
Add a Qt message handler that calls g_log. Add milliseconds to the g_log_message_handler timestamp. Change-Id: I5b1c1d902b6b05cd8daa01741b19d6c2048dfb9a Reviewed-on: https://code.wireshark.org/review/24865 Reviewed-by: Gerald Combs <gerald@wireshark.org> Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-04-05A bunch of "{Mac} OS X" -> "macOS" changes.Guy Harris1-1/+1
Avoid anachronisms, however; there was no "macOS 10.0" or even "OS X 10.0", for example. It was "Mac OS X" until 10.8 (although 10.7 was sometimes called "OS X" and sometimes called "Mac OS X"), and it was "OS X" from 10.8 to 10.11. Change-Id: Ie4a848997dcc6c45c2245c1fb84ec526032375c3 Reviewed-on: https://code.wireshark.org/review/20933 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2016-10-22More checks for localtime() and gmtime() returning NULL.Guy Harris1-5/+10
And some comments in the case where we're converting the result of time() - if your machine's idea of time predates January 1, 1970, 00:00:00 UTC, it'll crash on Windows, but that's not a case where a *file* can cause the problem due either to a bad file time stamp or bad time stamps in the file. Change-Id: I837a438e4b875dd8c4f3ec2137df7a16ee4e9498 Reviewed-on: https://code.wireshark.org/review/18369 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-02-09(Trivial) Fix printf-related 'Mismatch on sign' warningsBill Meier1-2/+2
Found by MSVC2013 Code Analysis Change-Id: I58063946dd558e98308c87b36eeac0ddbe1a6e79 Reviewed-on: https://code.wireshark.org/review/7045 Reviewed-by: Bill Meier <wmeier@newsguy.com>
2015-01-01Remove unneeded includes from ui folderMartin Mathieson1-1/+0
Change-Id: Ifd1eebff9080cd3867e44e4dcb2d2681370ed60a Reviewed-on: https://code.wireshark.org/review/6128 Reviewed-by: Martin Mathieson <martin.r.mathieson@googlemail.com>
2014-09-26Move the console log handling code to ui/console.[ch].Gerald Combs1-0/+174
Change-Id: I8e554a8e17399d78b0ef29dfb68109a219cd9f1b Reviewed-on: https://code.wireshark.org/review/4294 Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Gerald Combs <gerald@wireshark.org>