Here's something rudimentary for a complete copy of the quest log contents, including headings and invisible content.
Each quest will be table, with the information described at
Wowpedia.
Lua Code:
local quests = {}
local frame = CreateFrame("Frame")
frame:RegisterEvent("QUEST_LOG_UPDATE")
frame:SetScript("OnEvent", function(__, event)
if event == "QUEST_LOG_UPDATE" and not QuestMapFrame.ignoreQuestLogUpdate then
wipe(quests)
for i=1, C_QuestLog.GetNumQuestLogEntries() do
quests[i] = C_QuestLog.GetInfo(i)
end
end
end)