platform/core/system/dlog.git
3 years agoRemove a useless field 01/252101/2
Mateusz Majewski [Fri, 22 Jan 2021 10:10:08 +0000 (11:10 +0100)]
Remove a useless field

An artifact of the past.

We don't want to have this field, since we want to add the stdout mode.
But logs using such mode don't have any send timestamp, so there is
nothing reasonable to put in this field.

Change-Id: Ie4173fe81294e42564a5865fd9a0210f5684331a

3 years agoAdd some documentation on dlog_logger interface 01/251901/3
Mateusz Majewski [Wed, 20 Jan 2021 14:01:22 +0000 (15:01 +0100)]
Add some documentation on dlog_logger interface

Change-Id: I94288a407f8b19e4cef784b2d7fbc4b8c8d7bf78

3 years agoModify documentation about dlog priorities 31/249831/3 accepted/tizen/unified/20201222.122623 submit/tizen/20201217.052632 submit/tizen/20201218.002753
Hyotaek Shim [Thu, 17 Dec 2020 04:42:30 +0000 (13:42 +0900)]
Modify documentation about dlog priorities

Change-Id: If0ec7301de496fc5060a118b311ed61565e2a3ff
Signed-off-by: Hyotaek Shim <hyotaek.shim@samsung.com>
3 years agoIgnore QoS write errors more explicitly 10/249210/1
Michal Bloch [Tue, 8 Dec 2020 18:09:18 +0000 (19:09 +0100)]
Ignore QoS write errors more explicitly

Change-Id: I98c5a995565f3b31bdda6859aed50271ac67b8c3
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
3 years agoMerge "Move some headers into better places" into tizen
Michal Bloch [Fri, 4 Dec 2020 13:58:43 +0000 (13:58 +0000)]
Merge "Move some headers into better places" into tizen

3 years agoMove some headers into better places 49/249049/1
Mateusz Majewski [Fri, 4 Dec 2020 12:57:48 +0000 (13:57 +0100)]
Move some headers into better places

Change-Id: Ib01dfeb49092e26eab27f9a3ca39d5ea82eb5013

3 years agolibdlog: Allow disabling critical logs 51/248351/2 accepted/tizen/unified/20201127.130449 submit/tizen/20201126.015643
Karol Lewandowski [Wed, 25 Nov 2020 10:45:12 +0000 (11:45 +0100)]
libdlog: Allow disabling critical logs

Critical log can be disabled like other buffers:

  enable_critical=0

The default is to enable critical log buffer and function.

Change-Id: I7ce36638213b275c302ada18437cc911bb68548b

3 years agologger: extract privilege related code 45/242545/10
Michal Bloch [Wed, 26 Aug 2020 11:08:55 +0000 (13:08 +0200)]
logger: extract privilege related code

Change-Id: I7cd79b564227bb5b7479d04248430ae457b34b46
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
3 years agoMerge "Add logger daemon write buffering tests" into tizen
Michal Bloch [Mon, 9 Nov 2020 19:45:37 +0000 (19:45 +0000)]
Merge "Add logger daemon write buffering tests" into tizen

3 years agoThreadtime format: ensure space after tag 01/247201/1 accepted/tizen/unified/20201110.125035 submit/tizen/20201109.060608
Michal Bloch [Fri, 6 Nov 2020 18:11:21 +0000 (19:11 +0100)]
Threadtime format: ensure space after tag

The padding is only added for tags shorter than 8 characters.
This means that tags 8 characters or longer do not have any
whitespace between the tag and the bracket at the moment.

Tizen® Studio™ Dynamic Analyzer™ seems to expect whitespace there
to process a log correctly and I have come to believe that it drops
messages with longer tags. Not that it's any of our concern (since
technically their rule is broken), but that rule is actually fairly
sensible so we may as well adopt it.

Change-Id: I8e32fc9c5cdbd8db9d042fb7213596f85284eb41
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
3 years agoFix the short tag case 92/247192/1
Mateusz Majewski [Fri, 6 Nov 2020 10:56:54 +0000 (11:56 +0100)]
Fix the short tag case

Change-Id: Ie9a05377a40994bfc3a012d28fb17dfdc69706b6

3 years agologprint: bring back line breaks in all remaining formats 39/247039/2
Adrian Szyndela [Fri, 6 Nov 2020 08:38:21 +0000 (09:38 +0100)]
logprint: bring back line breaks in all remaining formats

The commit efa5c1ff changed tests behavior for inline warnings
however this was made due to some mistakes, mainly this one:
- line break tests were incomplete, they tested only few formats;
  this led me to think that these were the only formats that should
  be prefixed with the tag on every line. It wasn't true.

This commit fixes the formats by:
- switching the formats' line breaking behavior;
- adding line breaks tests for every missing format;
- bringing back the original inline warning tests.

Change-Id: If6db7b548e9ab1a0d6395968ee512447558afc1f

3 years agologprint: make threadtime format print metadata in every line 81/246981/1 submit/tizen/20201106.012725
Adrian Szyndela [Thu, 5 Nov 2020 15:16:25 +0000 (16:16 +0100)]
logprint: make threadtime format print metadata in every line

This brings back previous formatting for the threadtime format,
which was changed with rewriting log_print_log_line().

Additionally, it adds tests for such case, fixes inline warning test,
AND poses questions if more formats are affected by the rewrite.
And maybe commit efa5c1ff gives some hints for that.

Change-Id: I55470f397fd45fba61b8a68d58b1d9cd7f3e8257

3 years agoAdd logger daemon write buffering tests 57/246957/1
Mateusz Majewski [Thu, 5 Nov 2020 06:26:57 +0000 (07:26 +0100)]
Add logger daemon write buffering tests

Change-Id: I27cf20c553297532fde2f7ae51c9260cc084489d

3 years agoFix compilation on 64-bit targets 38/246738/2
Michal Bloch [Tue, 3 Nov 2020 18:58:58 +0000 (19:58 +0100)]
Fix compilation on 64-bit targets

Change-Id: I1da090652bbac925be2519f6137558f813d0724f
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
3 years agoMerge "Unify logger and pipe tests a bit" into tizen
Michal Bloch [Tue, 3 Nov 2020 15:36:23 +0000 (15:36 +0000)]
Merge "Unify logger and pipe tests a bit" into tizen

3 years agoUnify logger and pipe tests a bit 23/246723/1
Mateusz Majewski [Tue, 3 Nov 2020 12:03:33 +0000 (13:03 +0100)]
Unify logger and pipe tests a bit

Change-Id: I62beb09c8f00e3083037f655bf95be8684911aec

3 years agoEnable -Wall 86/245486/2
Mateusz Majewski [Fri, 9 Oct 2020 14:47:48 +0000 (16:47 +0200)]
Enable -Wall

🎉

Change-Id: I3827def56eab6042d2024083fe8ce31bf99735aa

3 years agoWarn when log is duplicated X times 67/243867/24 submit/tizen/20201027.165937
Agnieszka Baumann [Tue, 8 Sep 2020 10:24:29 +0000 (12:24 +0200)]
Warn when log is duplicated X times

Change-Id: I9302cd761a7de0f090a35940f47ef38de19ba9fa

3 years agoFix QoS division by 0 55/246255/3
Mateusz Majewski [Tue, 27 Oct 2020 08:57:13 +0000 (09:57 +0100)]
Fix QoS division by 0

While the count_above_threshold does have a check for 0, it doesn't do
what we want; we want it to return an infinite value somehow, but it
instead returns the dividend. This patch checks for this case and
returns the correct value manually.

The reason why it is important to return infinite value in this case is
that this division is supposed to always increase the threshold value.
Usually it does that correctly, since remaining_throughput has been
decreased by only those values that were under the average value, and
count_above_threshold has been decreased by count of those values.
Therefore, the result of the division is the average of all the values
that weren't lower than the previous average, and this average obviously
can't be lower than the previous average. However, if all the values are
under the average, the new average doesn't exist. It's morally infinite,
but the division instead returns the remaining_throughput, which is
obviously much lower than the original throughput, and often lower than
the threshold value. For example, if throughput is 20 and we have one
log source having written 18 logs, the result will be 2, which is wrong.

Change-Id: Id6d085707aeabc4032f931869c213f01db2c927a

3 years agoRemove time travel 70/246270/1
Mateusz Majewski [Tue, 27 Oct 2020 11:49:21 +0000 (12:49 +0100)]
Remove time travel

This commit fixes a bug in which some logs come to the pipe backend with
receipt timestamp earlier than sending timestamp.

Change-Id: I6c93cfa97547f89d6c55a4d1767322f64fe8fb5f

3 years agoAdd Requires=local-fs.target dependency to dlog_logger.service 11/245411/2
INSUN PYO [Thu, 8 Oct 2020 08:22:40 +0000 (17:22 +0900)]
Add Requires=local-fs.target dependency to dlog_logger.service

In emergency mode, local-fs.target always fails.
So, you have to check if local-fs.target is successful.

Change-Id: I6094ee7c585e62179d12e83ee36c9462491e6226

3 years agoFix QoS blocking too many logs 59/245659/3
Mateusz Majewski [Tue, 13 Oct 2020 11:00:08 +0000 (13:00 +0200)]
Fix QoS blocking too many logs

The original implementation of QoS had some logic errors which made it
allow too few logs. This commit fixes those logic errors, and raises
the limit in the integration tests accordingly.

Change-Id: Ia2591eca30fa5518575c0889fc7fa9d4e6bc1e54

3 years agoUpdate the overview file 19/245819/1
Mateusz Majewski [Fri, 16 Oct 2020 07:07:14 +0000 (09:07 +0200)]
Update the overview file

Change-Id: Idd6a56f7543186112f9ce82bfa4d6edc3c094acc

3 years agoDo not prepare for printing if not going to print 70/245770/2
Mateusz Majewski [Thu, 15 Oct 2020 12:18:28 +0000 (14:18 +0200)]
Do not prepare for printing if not going to print

The prepare_print function assumes that we are going to print. In
particular, it can disable buffers at will if they aren't going to be
printed. This can be problematic if we want to clear those buffers.

Change-Id: Ibe13a21cf0b599340d6404be569a2199bb3be9bc

3 years agoMake sure a mode isn't set if we want to use fetch operations 69/245769/2
Mateusz Majewski [Thu, 15 Oct 2020 11:54:52 +0000 (13:54 +0200)]
Make sure a mode isn't set if we want to use fetch operations

Change-Id: Ida4603727554c721eb03c0ea22b543c6cb83c39d

3 years agoMake sure the buffer is enabled before querying it 57/245757/1
Mateusz Majewski [Thu, 15 Oct 2020 09:53:41 +0000 (11:53 +0200)]
Make sure the buffer is enabled before querying it

Otherwise, the operation might segfault.

Change-Id: I7ba7e8fab50bc9bb3cbfa26e8ebbd086bfc2b4e9

3 years agoFix some cases of data loss caused by partial writes 08/245708/2
Mateusz Majewski [Wed, 14 Oct 2020 12:14:02 +0000 (14:14 +0200)]
Fix some cases of data loss caused by partial writes

Change-Id: Ibce508fac5f674041547253ebc8ad6fe6c64d649

3 years agoRemove some obsolete TODOs 79/245679/2
Mateusz Majewski [Wed, 14 Oct 2020 06:26:50 +0000 (08:26 +0200)]
Remove some obsolete TODOs

We now have a separate option parser, which doesn't use dlogutil_config
for reusability. Also, the logger does have the flush functionality
already (see flush_logfile_timely in logger.c).

Change-Id: Iefbac63e499b22b2b359710be76b65dd4a55af39

3 years agoMake some functions static only outside of unit tests 85/245485/1
Mateusz Majewski [Fri, 9 Oct 2020 14:46:10 +0000 (16:46 +0200)]
Make some functions static only outside of unit tests

Change-Id: I92bad069655456172cef67d1da37463567e6303e

3 years agoMake sure a function is only declared when it's actually defined 84/245484/1
Mateusz Majewski [Fri, 9 Oct 2020 14:45:20 +0000 (16:45 +0200)]
Make sure a function is only declared when it's actually defined

Change-Id: I974d9b984260940c94dd7dca9704a77e8511a239

3 years agoFix function formatting 83/245483/1
Mateusz Majewski [Fri, 9 Oct 2020 14:03:32 +0000 (16:03 +0200)]
Fix function formatting

Change-Id: Id9058c6480d1a463f09ff9effe78d29575f2fdad

3 years agoImprove src/tests/logutil.c 78/245478/1
Mateusz Majewski [Fri, 9 Oct 2020 13:39:58 +0000 (15:39 +0200)]
Improve src/tests/logutil.c

Change-Id: Ied5c4a0f846f36d8941f4a1b492f76d3fd1468e4

3 years agoUse the sizeof(*ptr) pattern more consistently 75/245475/1
Mateusz Majewski [Fri, 9 Oct 2020 12:47:22 +0000 (14:47 +0200)]
Use the sizeof(*ptr) pattern more consistently

It allows the code to withstand type changes slightly better.

Change-Id: I143806c54528e8cf30d18526b7a481280665ac6b

3 years agoLearn to count to 9 74/245474/1
Mateusz Majewski [Fri, 9 Oct 2020 12:05:11 +0000 (14:05 +0200)]
Learn to count to 9

Change-Id: I2fd23c61a793aadaea1bad5f9be32c6ca38485d0

3 years agoFix various formatting issues 73/245473/1
Mateusz Majewski [Fri, 9 Oct 2020 11:47:30 +0000 (13:47 +0200)]
Fix various formatting issues

Change-Id: Ie6352f4b13f1eba6b2fb808b92efd1b8560495fe

3 years agoAdd some docs 40/245440/2
Mateusz Majewski [Thu, 8 Oct 2020 11:59:03 +0000 (13:59 +0200)]
Add some docs

Change-Id: I7132296bddf6ce1095184f7a8db4e510adaebacb

3 years agoPut critical logs in the main buffer in the tests 02/245402/2
Mateusz Majewski [Thu, 8 Oct 2020 07:33:58 +0000 (09:33 +0200)]
Put critical logs in the main buffer in the tests

Otherwise, the logger verbose tests emit an error.

Change-Id: Id5cdd781c3b4fa42da736fe2207837528416eec9

3 years agoMerge "Miscellaneous fixes" into tizen
Michal Bloch [Fri, 2 Oct 2020 15:05:07 +0000 (15:05 +0000)]
Merge "Miscellaneous fixes" into tizen

3 years agoconfigure: fix typo 28/245128/3
Karol Lewandowski [Fri, 2 Oct 2020 09:59:53 +0000 (11:59 +0200)]
configure: fix typo

Change-Id: Ib08aa4467566712a45e2c5e791ec3bff6557c13f

3 years agoMiscellaneous fixes 46/242546/8
Michal Bloch [Wed, 26 Aug 2020 10:51:56 +0000 (12:51 +0200)]
Miscellaneous fixes

Change-Id: I0245f509fa4e4c9b2ddf2d25ff823d486d7e7ae8
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
3 years agolibdlogutil: relicense to MIT 82/242682/3
Michal Bloch [Fri, 28 Aug 2020 17:20:02 +0000 (19:20 +0200)]
libdlogutil: relicense to MIT

Change-Id: Ic9fe65de28a03e00ab954f7752dc13bbda5cae7e
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
3 years agoRemove AOSP licenses 33/245133/2
Michal Bloch [Fri, 2 Oct 2020 11:06:36 +0000 (13:06 +0200)]
Remove AOSP licenses

As far as we are aware no AOSP code is left; possibly some trivial snippets
trace their origins to AOSP but I don't think anybody is going to complain
over one-liners.

Change-Id: I191add3a0348f7b7979977f2f80cef3f429acca3

3 years agoMake sure no partial UTF-8 encodings are left in the metadata 72/244972/5
Mateusz Majewski [Mon, 28 Sep 2020 10:11:00 +0000 (12:11 +0200)]
Make sure no partial UTF-8 encodings are left in the metadata

Change-Id: Ic02d5b13a3847a7231631782def6dc670082165a

3 years agotests: fixed typo 94/245094/1
Adrian Szyndela [Thu, 1 Oct 2020 11:14:07 +0000 (13:14 +0200)]
tests: fixed typo

Change-Id: I9fe7eedfd5f12fd7a4c8abf9887b059b5efcf4e4

3 years agoReuse util's parser in the logger daemon 53/244953/3 accepted/tizen_6.0_unified_hotfix tizen_6.0_hotfix accepted/tizen/6.0/unified/20201030.115440 accepted/tizen/6.0/unified/hotfix/20201103.002928 accepted/tizen/unified/20201005.101403 submit/tizen/20200928.173910 submit/tizen_6.0/20201029.205104 submit/tizen_6.0_hotfix/20201102.192504 submit/tizen_6.0_hotfix/20201103.114804 tizen_6.0.m2_release
Mateusz Majewski [Mon, 28 Sep 2020 08:21:02 +0000 (10:21 +0200)]
Reuse util's parser in the logger daemon

Change-Id: Ic3a73bf332b6359265a9727a46f2fdaf415d3d77

3 years agoMake the portable parser resetable 01/244901/3
Mateusz Majewski [Fri, 25 Sep 2020 13:06:18 +0000 (15:06 +0200)]
Make the portable parser resetable

Change-Id: I34531397651f5a2e6c315ea2b0888c4a67dd3a37

3 years agoMove the util parser outside of util so we can reuse it 93/244893/4
Mateusz Majewski [Fri, 25 Sep 2020 11:03:31 +0000 (13:03 +0200)]
Move the util parser outside of util so we can reuse it

Change-Id: Icec52e46925923e549850ad9f10f221f7e363dfc

3 years agoRewrite `log_add_filter_rule()` 74/244274/4
Michal Bloch [Wed, 16 Sep 2020 13:56:17 +0000 (15:56 +0200)]
Rewrite `log_add_filter_rule()`

 * the last ':' delimiter is now taken instead of the first.
   For example `FOO:::BAR:E` is now tag `FOO:::BAR` with prio `E`
   instead of tag `FOO` and priority `::BAR:E`.

 * fixes a memleak on `list_add()` failure.

 * removes AOSP license because this was the last piece of AOSP code.

Change-Id: I6a94382cd6a1d3b175c5daf71b566dec4ba28717
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
3 years agoMake util's option parsing more modular 33/244633/5
Mateusz Majewski [Fri, 18 Sep 2020 09:05:26 +0000 (11:05 +0200)]
Make util's option parsing more modular

Will be helpful in making the logger daemon use this implementation too
instead of having its own implementation (DRY!).

Change-Id: I899923f4299d6a4604526d3bafb8c5ee60029d39

3 years agoptrs_list: list_clear family accepts NULLs 56/244856/1
Michal Bloch [Fri, 25 Sep 2020 06:20:13 +0000 (08:20 +0200)]
ptrs_list: list_clear family accepts NULLs

Change-Id: Id41135a151fcc354dbe6d7556ddb2cd98eb5f581
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
3 years agoMove parsers.h to the include directory 36/244536/3 accepted/tizen/unified/20201005.005815 resubmit submit/tizen/20200925.070823
Agnieszka Baumann [Fri, 18 Sep 2020 19:41:19 +0000 (21:41 +0200)]
Move parsers.h to the include directory

Change-Id: I2f5e77306b4b0cee0ed2c991ce0af71cf4970b89

3 years agoRemove another nested function 68/244768/1 submit/resubmit/20200925.070106 submit/tizen/20200924.064724
Mateusz Majewski [Thu, 24 Sep 2020 06:09:35 +0000 (08:09 +0200)]
Remove another nested function

GCC nested functions bad in C.

Change-Id: Id37b7c00dc62937fb13eefd02e61b68c786a7b33

3 years agoRemove a ghetto lambda 11/244711/2
Michal Bloch [Wed, 23 Sep 2020 10:33:12 +0000 (12:33 +0200)]
Remove a ghetto lambda

Change-Id: I54da91b57b7a31f56c275a286e6226c2af5c13b3
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
3 years agoAdd build option for DEP 64/244664/1 submit/tizen/20200923.060854
Yunmi Ha [Wed, 23 Sep 2020 05:11:52 +0000 (14:11 +0900)]
Add build option for DEP

- data execution prevention
- prevent execution at data area of memory

Change-Id: I8d6b00683754f57360cb8a42c880789a5748f9e0
Signed-off-by: Yunmi Ha <yunmi.ha@samsung.com>
3 years agoImprove printing of some edge case logs 49/244549/1 accepted/tizen/unified/20200922.090853 submit/tizen/20200922.010810
Mateusz Majewski [Mon, 21 Sep 2020 11:38:39 +0000 (13:38 +0200)]
Improve printing of some edge case logs

Change-Id: I69d5dc78a7ef896a623193c96d7091302bbb63ab

3 years agoFinish improving the dlog_test.in script 50/244250/2 accepted/tizen/unified/20200921.123319 submit/tizen/20200918.114600 submit/tizen/20200921.004137
Mateusz Majewski [Wed, 16 Sep 2020 08:20:58 +0000 (10:20 +0200)]
Finish improving the dlog_test.in script

Change-Id: I37ee9aa8a0a9bc78cfea48d7f3ed0f1b9873907f

3 years agoFix the test script a bit 49/244249/2
Mateusz Majewski [Wed, 16 Sep 2020 09:01:33 +0000 (11:01 +0200)]
Fix the test script a bit

Don't call the ok and fail functions in a subshell. Bad idea.

Change-Id: Ic8c1dd12620773c700d4200385def2983d5bd59e

3 years agoFix coverity issue - buffer not null terminated 76/244076/4
Yunmi Ha [Tue, 15 Sep 2020 01:20:27 +0000 (10:20 +0900)]
Fix coverity issue - buffer not null terminated

Change-Id: I51adcf189dd81ecef58e75f2fd4722ef2346755e
Signed-off-by: Yunmi Ha <yunmi.ha@samsung.com>
3 years agoRemove one last unnecessary link 18/244118/1
Mateusz Majewski [Tue, 15 Sep 2020 06:26:46 +0000 (08:26 +0200)]
Remove one last unnecessary link

Change-Id: I3926323ec45765a5b04041330b345457a1928b64

3 years agoClean up Makefile.am 12/244012/2
Mateusz Majewski [Mon, 14 Sep 2020 05:30:17 +0000 (07:30 +0200)]
Clean up Makefile.am

Change-Id: I573639255626da315293ca557b05f7ee6361b5d0

3 years agoRemove a useless variable 79/243979/2
Mateusz Majewski [Fri, 11 Sep 2020 12:19:44 +0000 (14:19 +0200)]
Remove a useless variable

Note that it's quite important to put the variables and the check inside
of the pipeline. This is because the shell is allowed to run the pipeline
command in a subshell (here done explicitly, but even if we wouldn't put
an explicit subshell the shell could create one), and therefore not
propagate the changes outside, making the test useless.

Change-Id: Ie3bd27e38bbe88ede1b7dfcf63639befa0b47486

3 years agoRemove… something 78/243978/2
Mateusz Majewski [Fri, 11 Sep 2020 12:43:15 +0000 (14:43 +0200)]
Remove… something

This line is obviously bogus. It looks like it always calls continue,
but the reality is not so simple; -eq is arithmetic comparision, and the
contents of $line are not numbers. After removing the line, the test
still works.

Change-Id: I9093943086018f0eed2c8f5bc10ebcaf57c0f143

3 years agoIntroduce basic --sort-by tests 04/243904/2
Mateusz Majewski [Thu, 10 Sep 2020 11:22:08 +0000 (13:22 +0200)]
Introduce basic --sort-by tests

Pipe backend only because there's not much to sort by on the AL backend.

Change-Id: Ib140bba2ddc677b49d19f0819729baa7304166c2

3 years agoMake API+internal functions behavior dependent on usage 61/243961/1
Mateusz Majewski [Fri, 11 Sep 2020 11:22:11 +0000 (13:22 +0200)]
Make API+internal functions behavior dependent on usage

Some functions are used both internally and exported in the libdlogutil
API. This is hacky, but we decided that, on invalid parameters, they
should assert when used internally, and return an error when used via
API.

Change-Id: Id8b2d173670a8eaa845c13a8178a43d4f421a004

3 years agoMerge changes Ibfc41bf3,Id7181124,Idf23665c into tizen
Michal Bloch [Thu, 10 Sep 2020 11:40:06 +0000 (11:40 +0000)]
Merge changes Ibfc41bf3,Id7181124,Idf23665c into tizen

* changes:
  Inline struct log_filter in the struct dlogutil_config
  Remove an unnecessary include
  Change dlogutil_filter_options -> log_filter

3 years agoRemove some unnecessary backslashes 51/243851/1
Mateusz Majewski [Thu, 10 Sep 2020 11:28:32 +0000 (13:28 +0200)]
Remove some unnecessary backslashes

Change-Id: Ifea988b15c12bf82bd85fe093cd4b8d0d9c27459

3 years agoFix a little regression in the JSON format 30/243830/2
Mateusz Majewski [Thu, 10 Sep 2020 10:00:28 +0000 (12:00 +0200)]
Fix a little regression in the JSON format

We've forgotten the case in which the tag/message are empty in JSON
format. This commit fixes it.

Change-Id: I3e2deaf0595e46bd92ab763ae9b95e62aa9dc9f7

3 years agoInline struct log_filter in the struct dlogutil_config 49/243749/1
Mateusz Majewski [Wed, 9 Sep 2020 13:40:42 +0000 (15:40 +0200)]
Inline struct log_filter in the struct dlogutil_config

Change-Id: Ibfc41bf3f40564a409b2fd459633308c1ad469d1

3 years agoRemove an unnecessary include 48/243748/1
Mateusz Majewski [Wed, 9 Sep 2020 13:28:00 +0000 (15:28 +0200)]
Remove an unnecessary include

Change-Id: Id718112405ebd1382eedf6f66e1ae84c65cba8b7

3 years agoChange dlogutil_filter_options -> log_filter 45/243745/2
Mateusz Majewski [Wed, 9 Sep 2020 12:57:12 +0000 (14:57 +0200)]
Change dlogutil_filter_options -> log_filter

The log_filter struct used to be called this. Then it became part of
libdlogutil API and we decided to rename it dlogutil_filter_options and
provide dlogutil_filter_options_s alias instead of creating a wrapper.
However, now it and some related functions aren't part of libdlogutil
API anymore, so they should be called log_filter_* again.

Change-Id: Idf23665c41ba0eb5d744e1362042f3a246bd510f

3 years agoInline dlogutil_filter_options_destroy 44/243744/1
Mateusz Majewski [Wed, 9 Sep 2020 12:31:21 +0000 (14:31 +0200)]
Inline dlogutil_filter_options_destroy

Note that the log_filter_free contains the NULL check too.

Change-Id: Iad6961fe9adf454350bc16e2a8a302a010a9d02b

3 years agoInline dlogutil_filter_options_create 43/243743/1
Mateusz Majewski [Wed, 9 Sep 2020 12:15:08 +0000 (14:15 +0200)]
Inline dlogutil_filter_options_create

Change-Id: I914bb6e3215e970d226000ea859c90caaf0a2e53

3 years agoMake some internal functions more internal 42/243742/1
Mateusz Majewski [Wed, 9 Sep 2020 11:53:00 +0000 (13:53 +0200)]
Make some internal functions more internal

Change-Id: I0868ab5a8eaee6e46a65510f133c4bb44bef689f

3 years agoMake the infamous rotation test more consistent 17/243717/2
Mateusz Majewski [Wed, 9 Sep 2020 08:50:26 +0000 (10:50 +0200)]
Make the infamous rotation test more consistent

This test used to like to fail, especially the (2/4) part. It turned out
that it's due to a race condition; we run the dlogutil instance in the
background but we neglect to wait for it to do it's job. We can
improve on this by running the instance in the foreground, after the
logs already have been written, in the dump mode, which makes it quit
after writing all the logs.

Change-Id: Ic004918557afdc8a171fe7996fec66fdcf666bfe

3 years agoAdd verbose mode and advanced argument parsing to the test script 27/243627/2
Mateusz Majewski [Tue, 8 Sep 2020 13:35:52 +0000 (15:35 +0200)]
Add verbose mode and advanced argument parsing to the test script

Change-Id: I8aa0e4cd21e0acaabdad6b82817d63d6087466fc

3 years agoQuote more in the test script 10/243610/1
Mateusz Majewski [Tue, 8 Sep 2020 11:38:25 +0000 (13:38 +0200)]
Quote more in the test script

Change-Id: I93b685e58ad659c8e60d01763fc94ccff038ad14

3 years agoAdd a test verifying the correct handling of SIGPIPE 63/243563/2
Mateusz Majewski [Tue, 8 Sep 2020 07:00:54 +0000 (09:00 +0200)]
Add a test verifying the correct handling of SIGPIPE

Change-Id: Ida44456203823bc51ed021e55e5d47b5c2913f29

3 years agoStop pretending log_print_log_line return value is meaningful 56/243156/3
Mateusz Majewski [Thu, 3 Sep 2020 09:12:55 +0000 (11:12 +0200)]
Stop pretending log_print_log_line return value is meaningful

According to its docs, log_print_log_line function returns the number of
bytes written, just like write.

In case of the write function, this is really useful, since the write
function can do partial writes in some cases and returning the exact
amount of bytes written allows us to restart the function and handle the
errors in a good way. However, all of this is irrelevant in the
log_print_log_line function, since the message is created inside the
function; there's no way to restart the write in case of the partial
write inside it. Therefore, the log_print_log_line is the only possible
place where the partial write is possible to be handled, and the place
where it should be handled; after doing so, there's no reason to return
the number of bytes written.

More importantly, after implementing log buffering, there's no good way
to report the number of bytes written, since sometimes it will just be 0
(if the log ends up in the buffer), even though everything went well.
Therefore, this function ended up returning some flummadiddle that was
strategically picked to appease tests, and had some correlation with the
log length, but had no real semantic meaning. It's simply better to not
pretend and to just return 1.

Change-Id: I31636c8aca8f3e90cf5322e4d3f85fed1df65e03

3 years agoDon't cache the file size 55/243155/3
Mateusz Majewski [Thu, 3 Sep 2020 09:50:16 +0000 (11:50 +0200)]
Don't cache the file size

Little point in caching the file size if you are going to update it
before using anyway.

Yes, in some edge cases, the accurate size might be unavailable, but I
don't think that there are many cases in which we can't check the file
size, but we can write to it. More importantly, the cached value was
wrong anyway, since log_print_log_line has been returning hogwash
instead of an accurate written byte count for some time.

Change-Id: I73d8b6d757ac0cd6574b66349ac2e8054bb15aaa

3 years agoRemove data loss possibility in the log_file struct (again) 14/243314/2
Mateusz Majewski [Fri, 4 Sep 2020 12:25:08 +0000 (14:25 +0200)]
Remove data loss possibility in the log_file struct (again)

This is the fixed version of the commit that was reverted. The
difference is in the

    if (written >= 0)

which used to be

    if (written > 0)

which is right if we are calling the write function. But the full_write
function is not the drop-in replacement; it returns 0 on success.

Change-Id: I68216849734b5c351b178613ff18636136aedb6d

3 years agoConform dlogutil_get_log to Tizen errors 79/243179/3
Agnieszka Baumann [Tue, 1 Sep 2020 17:24:54 +0000 (19:24 +0200)]
Conform dlogutil_get_log to Tizen errors

Change-Id: I25053217122caf750184ba208f6d19eb8fb9ae3e

3 years agoConform dlogutil_config_connect to Tizen errors 80/243180/2
Agnieszka Baumann [Mon, 31 Aug 2020 17:06:31 +0000 (19:06 +0200)]
Conform dlogutil_config_connect to Tizen errors

Change-Id: I32d660fe8ced95061a67ec7888483192c2f5af8d

3 years agoAdd basic persistent logging tests 89/243289/2 accepted/tizen/unified/20200908.060805 submit/tizen/20200907.062212
Mateusz Majewski [Fri, 4 Sep 2020 08:31:06 +0000 (10:31 +0200)]
Add basic persistent logging tests

For pipe backend only for now.

Change-Id: I59ea088c9ba39c10cd9706ac5e432513e291bad1

3 years agoRevert "Remove data loss possibility in the log_file struct" 70/243170/1
Mateusz Majewski [Thu, 3 Sep 2020 12:53:30 +0000 (14:53 +0200)]
Revert "Remove data loss possibility in the log_file struct"

This reverts commit 64b01bc83d247c02b0ef31b26ffd58a6741e1fdc.

It turned out that the commit worked too well :)

Change-Id: Id6005ebd0d281cbd60e1a369a8e1cf10e8a600a9

3 years agoDrop the CAP_SYSLOG requirement 78/242878/6
Mateusz Majewski [Tue, 1 Sep 2020 12:50:01 +0000 (14:50 +0200)]
Drop the CAP_SYSLOG requirement

With the last fix, we don't need it anymore!

Change-Id: Ic5ed1ccb7a08d20c5e869a68575c676e69694711

3 years agoRemove data loss possibility in the log_file struct 21/243021/2
Mateusz Majewski [Wed, 2 Sep 2020 13:10:50 +0000 (15:10 +0200)]
Remove data loss possibility in the log_file struct

Change-Id: I273953f7a5ebd4263b18d5e45c743793fb23f9b3

3 years agoCompile with -g 97/242997/4
Mateusz Majewski [Wed, 2 Sep 2020 08:37:48 +0000 (10:37 +0200)]
Compile with -g

Currently DLog ignores global compiler flags, which contain -g for
debugging symbols. We'd like to make sure that they aren't overridden in
the future, but for now, we can just add -g here. As a bonus, a little
spacing mistake is fixed.

Change-Id: Iaef47e487dd7f9dabea0a97286a5b3b4134ed3c7

3 years agoRemove some more bashisms and weird shell issues 04/243004/1
Mateusz Majewski [Wed, 2 Sep 2020 07:02:54 +0000 (09:02 +0200)]
Remove some more bashisms and weird shell issues

Change-Id: Icc8b3e13caf5961cef0938b68718fb39565dacb4

3 years agoRemove unnecessary wc -l 68/242968/1
Mateusz Majewski [Wed, 2 Sep 2020 06:33:52 +0000 (08:33 +0200)]
Remove unnecessary wc -l

Change-Id: I29d8541202e5a98b26b2f09c0f14bdf9b6f97f92

3 years agoFix AOSP file licenses 90/242890/1
Michal Bloch [Tue, 1 Sep 2020 16:17:40 +0000 (18:17 +0200)]
Fix AOSP file licenses

 * logprint.h → contains no implementations (it doesn't contain any
   Samsung implementations either but that is not a problem).

 * libdlogutil/lib.c → never had any AOSP code, the license text
   was copy-pasted from some other file. Some of the getters may
   have existed earlier but returning a member from a struct is
   its own specification so not really copyrightable.

 * shared/logprint.c → we thought we had removed the only AOSP func
   in e7aa8a06f7d400a494f06cf51dbce6a69757b5c5, but it looks like
   'log_add_filter_rule' has enough original AOSP parts that we'd
   like to err on the side of caution and consider it AOSP, thus
   the copyright note is reinstated until the func is rewritten.

Change-Id: Ie3c49f80261fc390bf5f7eca173963f0e93e21c5
Signed-off-by: Michal Bloch <m.bloch@samsung.com>
3 years agolibdlogutil: memory capacity failure now returns TIZEN_ERROR_OUT_OF_MEMORY 82/242882/2
Agnieszka Baumann [Mon, 31 Aug 2020 17:03:10 +0000 (19:03 +0200)]
libdlogutil: memory capacity failure now returns TIZEN_ERROR_OUT_OF_MEMORY

Change-Id: Ifab87328b3b59ec0ffee50a309631eb21967c4bc

3 years agolibdlogutil: request failure now IO_ERROR 83/242883/2
Agnieszka Baumann [Tue, 1 Sep 2020 10:50:38 +0000 (12:50 +0200)]
libdlogutil: request failure now IO_ERROR

Change-Id: I009ab67f874fe5894ed5befb97330bf93138d4a5

3 years agolibdlogutil: config failure now returns TIZEN_ERROR_IO_ERROR 84/242884/1
Agnieszka Baumann [Fri, 28 Aug 2020 13:56:17 +0000 (15:56 +0200)]
libdlogutil: config failure now returns TIZEN_ERROR_IO_ERROR

Instead of an arbitrary POSIX errno

Change-Id: Ieeb3c93d8d72fa19322ac9a0f232800632b16ca9

3 years agoAssert that the logger devices don't end 73/242873/1
Mateusz Majewski [Tue, 1 Sep 2020 10:41:28 +0000 (12:41 +0200)]
Assert that the logger devices don't end

Change-Id: Ib8abd22294360784158a75d49af127019922872a

3 years agoUse the hash from hash.c in the limiter 68/242868/1
Mateusz Majewski [Tue, 1 Sep 2020 10:08:26 +0000 (12:08 +0200)]
Use the hash from hash.c in the limiter

We have a nicely tested hash implementation in hash.c. It makes little
sense for the loglimiter to have its own hash.

Change-Id: I09e8c8bb8e2dcc385a2063d794bf5c627fa12460

3 years agoFix a long-standing Android Logger blocking bug 67/242867/1
Mateusz Majewski [Tue, 1 Sep 2020 08:11:51 +0000 (10:11 +0200)]
Fix a long-standing Android Logger blocking bug

Change-Id: I8c99d1f5ed70570e8bf1facab248207f07f1c2b3

3 years agoRemove an unused variable 34/242834/1
Mateusz Majewski [Tue, 1 Sep 2020 06:21:09 +0000 (08:21 +0200)]
Remove an unused variable

Change-Id: I7a4a7721e2c280ddbd57d37d4d62b87708acda3c

3 years agoRemove unused dlogutil_entry_cb 31/242731/1
Agnieszka Baumann [Mon, 31 Aug 2020 15:05:22 +0000 (17:05 +0200)]
Remove unused dlogutil_entry_cb

Change-Id: I74789caaee407e891be3816f9793f53831221128

3 years agoReduce gotos 78/242678/4
Agnieszka Baumann [Tue, 25 Aug 2020 10:43:23 +0000 (12:43 +0200)]
Reduce gotos

Change-Id: I85686289d0c3ab6c2f8a572a58a553c254b88a38