diff --git a/garnet/bin/a11y/a11y_manager/semantics/semantic_tree_impl.cc b/garnet/bin/a11y/a11y_manager/semantics/semantic_tree_impl.cc
index 8db7854..0264a3b 100644
--- a/garnet/bin/a11y/a11y_manager/semantics/semantic_tree_impl.cc
+++ b/garnet/bin/a11y/a11y_manager/semantics/semantic_tree_impl.cc
@@ -11,6 +11,8 @@
 #include "third_party/abseil-cpp/absl/strings/str_cat.h"
 
 namespace a11y_manager {
+// Max file size of semantic tree log file is 1MB.
+constexpr size_t kMaxDebugFileSize = 1024 * 1024;
 const std::string kNewLine = "\n";
 const std::string::size_type kIndentSize = 4;
 const int kRootNode = 0;
@@ -214,4 +216,28 @@
   }
 }
 
+void SemanticTreeImpl::InitializeDebugEntry(vfs::PseudoDir* debug_dir) {
+  if (debug_dir_) {
+    // Add Semantic Tree log file in Hub-Debug directory.
+    debug_dir_->AddEntry(
+        std::to_string(GetKoid(view_ref_)),
+        std::make_unique<vfs::PseudoFile>(
+            kMaxDebugFileSize,
+            [this](std::vector<uint8_t>* output, size_t max_file_size) {
+              std::string buffer = LogSemanticTree();
+              size_t len = buffer.length();
+              if (len > max_file_size) {
+                FX_LOGS(WARNING)
+                    << "Semantic Tree log file ("
+                    << std::to_string(GetKoid(view_ref_)) << ") size is:" << len
+                    << " which is more than max size:" << kMaxDebugFileSize;
+                len = kMaxDebugFileSize;
+              }
+              output->resize(len);
+              std::copy(buffer.begin(), buffer.begin() + len, output->begin());
+              return ZX_OK;
+            }));
+  }
+}
+
 }  // namespace a11y_manager
diff --git a/garnet/bin/a11y/a11y_manager/semantics/semantic_tree_impl.h b/garnet/bin/a11y/a11y_manager/semantics/semantic_tree_impl.h
index 765b91e..84e12e4 100644
--- a/garnet/bin/a11y/a11y_manager/semantics/semantic_tree_impl.h
+++ b/garnet/bin/a11y/a11y_manager/semantics/semantic_tree_impl.h
@@ -31,18 +31,7 @@
       : view_ref_(std::move(view_ref)),
         client_action_listener_(std::move(client_action_listener)),
         debug_dir_(debug_dir) {
-    if (debug_dir_) {
-      // Add Semantic Tree log file in Hub-Debug directory.
-      debug_dir_->AddEntry(std::to_string(GetKoid(view_ref_)),
-                           std::make_unique<vfs::PseudoFile>(
-                               [this](std::vector<uint8_t>* output) {
-                                 std::string buffer = LogSemanticTree();
-                                 output->resize(buffer.length());
-                                 std::copy(buffer.begin(), buffer.end(),
-                                           output->begin());
-                                 return ZX_OK;
-                               }));
-    }
+    InitializeDebugEntry(debug_dir_);
   }
 
   ~SemanticTreeImpl() override = default;
@@ -110,6 +99,10 @@
   bool BoxContainsPoint(const fuchsia::ui::gfx::BoundingBox& box,
                         const escher::vec2& point) const;
 
+  // Function to create per view Log files under debug directory for debugging
+  // semantic tree.
+  void InitializeDebugEntry(vfs::PseudoDir* debug_dir);
+
   // List of committed, cached nodes for each front-end. We represent semantics
   // tree as a map of local node ids to the actual node objects. All query
   // operations should use the node information from these trees.
