1# Copyright (c) 2021 Nordic Semiconductor ASA
2# SPDX-License-Identifier: Apache-2.0
3
4choice LOG_MODE
5	prompt "Mode"
6	depends on !LOG_FRONTEND_ONLY
7	default LOG_MODE_IMMEDIATE if ARCH_POSIX
8	default LOG_MODE_MINIMAL if LOG_DEFAULT_MINIMAL
9	default LOG_MODE_DEFERRED
10
11config LOG_MODE_DEFERRED
12	bool "Deferred logging"
13	select MPSC_PBUF
14	help
15	  Log messages are buffered and processed later. This mode has the
16	  least impact on the application. Time consuming processing is
17	  deferred to the known context.
18
19config LOG_MODE_IMMEDIATE
20	bool "Synchronous"
21	help
22	  When enabled log is processed in the context of the call. It impacts
23	  performance of the system since time consuming operations are
24	  performed in the context of the log entry (e.g. high priority
25	  interrupt).Logger backends must support exclusive access to work
26	  flawlessly in that mode because one log operation can be interrupted
27	  by another one in the higher priority context.
28
29config LOG_MODE_MINIMAL
30	bool "Minimal-footprint"
31	select PRINTK
32	help
33	  Enable minimal logging implementation. This has very little footprint
34	  overhead on top of the printk() implementation for standard
35	  logging macros. Hexdump macros are also supported, with a small
36	  amount of code pulled in if used. Build time filtering is supported,
37	  but not runtime filtering. There are no timestamps, prefixes,
38	  colors, or asynchronous logging, and all messages are simply
39	  sent to printk().
40
41endchoice
42
43config LOG_FRONTEND
44	bool "Frontend"
45	help
46	  When enabled, logs are redirected to a custom frontend which is the
47	  fastest way of getting logs out. The logs are redirected at the function
48	  level. To redirect logs at the macro level, see LOG_CUSTOM_HEADER.
49
50config LOG_FRONTEND_ONLY
51	bool "No backends"
52	depends on LOG_FRONTEND
53	help
54	  Option indicates that there are no backends intended to be used.
55	  Code asserts if any backend is enabled.
56
57config LOG_FRONTEND_OPT_API
58	bool "Frontend optimized API"
59	help
60	  When enabled, frontend implements functions which are optimized versions
61	  used for the most common log messages.
62
63config LOG_CUSTOM_HEADER
64	bool "Include Custom Log Header"
65	help
66	  When enabled, a custom application provided header, named
67	  "zephyr_custom_log.h", is included at the end of log.h. This enables
68	  extension of the LOG_* APIs at the macro level. Please use cautiously!
69	  The internal LOG API may change in future releases.
70
71config LOG_DEFAULT_MINIMAL
72	bool
73
74config LOG_MULTIDOMAIN
75	bool "Multi-domain logger"
76	select LOG_TIMESTAMP_64BIT
77