blob: 44a48a966ea7e0c51895d4782775e9fd262ee280 [file]
# Copyright (C) 2026 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Contains tables for log entries from various sources."""
from python.generators.trace_processor_table.public import Column as C
from python.generators.trace_processor_table.public import ColumnDoc
from python.generators.trace_processor_table.public import CppAccess
from python.generators.trace_processor_table.public import CppInt64
from python.generators.trace_processor_table.public import CppOptional
from python.generators.trace_processor_table.public import CppString
from python.generators.trace_processor_table.public import CppTableId
from python.generators.trace_processor_table.public import CppUint32
from python.generators.trace_processor_table.public import Table
from python.generators.trace_processor_table.public import TableDoc
from src.trace_processor.tables.metadata_tables import THREAD_TABLE
LOG_TABLE = Table(
python_module=__file__,
class_name="LogTable",
sql_name="__intrinsic_logs",
columns=[
C("ts", CppInt64(), cpp_access=CppAccess.READ),
C("utid",
CppOptional(CppTableId(THREAD_TABLE)),
cpp_access=CppAccess.READ),
C("prio", CppUint32(), cpp_access=CppAccess.READ),
C("log_source", CppString(), cpp_access=CppAccess.READ),
C("tag", CppOptional(CppString()), cpp_access=CppAccess.READ),
C("msg", CppString(), cpp_access=CppAccess.READ),
C("arg_set_id",
CppOptional(CppUint32()),
cpp_access=CppAccess.READ_AND_LOW_PERF_WRITE),
],
tabledoc=TableDoc(
doc='''
Log entries from all sources (Android logcat, journald, etc.).
NOTE: this table is not sorted by timestamp. This is why we omit the
sorted flag on the ts column.
''',
group='Android',
columns={
'ts':
'Timestamp of the log entry.',
'utid':
ColumnDoc(
doc='Thread writing the log entry (nullable).',
joinable='thread.id'),
'prio':
'Priority. Android: 3=DEBUG..6=ERROR. Journald/syslog: 0=EMERG..7=DEBUG.',
'log_source':
"Source of the log entry: 'android_logcat' or 'systemd_journald'.",
'tag':
'Tag / SYSLOG_IDENTIFIER of the log entry.',
'msg':
'Content of the log entry.',
'arg_set_id':
ColumnDoc(
doc='Args for source-specific metadata.',
joinable='args.arg_set_id'),
},
),
)
ALL_TABLES = [LOG_TABLE]