Remove ServerService.LOG

It looks that it is not used. We have a way to turn it on in
DartAnalysisServerService.java in Dart plugin for IntelliJ, but
setServerLogSubscription is not used in the plugin, marked as to be
used in the Flutter plugin, but actually is not used there.

Change-Id: If851044385100543ec0ff30e02dee3d99f1558e4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/219362
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analysis_server/doc/api.html b/pkg/analysis_server/doc/api.html
index b84e3fd..09adf9a 100644
--- a/pkg/analysis_server/doc/api.html
+++ b/pkg/analysis_server/doc/api.html
@@ -420,7 +420,6 @@
   
   
   
-  
 <h3>Requests</h3><dl><dt class="request"><a name="request_server.getVersion">server.getVersion</a></dt><dd><div class="box"><pre>request: {
   "id": String
   "method": "server.getVersion"
@@ -3082,8 +3081,6 @@
   
   
   
-  
-  
 <dl><dt class="typeDefinition"><a name="type_AddContentOverlay">AddContentOverlay: object</a></dt><dd>
     <p>
       A directive to begin overlaying the contents of a file. The supplied
@@ -5569,7 +5566,7 @@
       An enumeration of the services provided by the server domain.
     </p>
     
-  <dl><dt class="value">LOG</dt><dt class="value">STATUS</dt></dl></dd><dt class="typeDefinition"><a name="type_SourceChange">SourceChange: object</a></dt><dd>
+  <dl><dt class="value">STATUS</dt></dl></dd><dt class="typeDefinition"><a name="type_SourceChange">SourceChange: object</a></dt><dd>
     <p>
       A description of a set of edits that implement a single conceptual change.
     </p>
@@ -6065,7 +6062,7 @@
   TODO: TBD
 </p>
 <h2 class="domain"><a name="index">Index</a></h2>
-<h3>Domains</h3><h4>server (<a href="#domain_server">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_server.getVersion">getVersion</a></li><li><a href="#request_server.shutdown">shutdown</a></li><li><a href="#request_server.setSubscriptions">setSubscriptions</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_server.connected">connected</a></li><li><a href="#notification_server.error">error</a></li><li><a href="#notification_server.log">log</a></li><li><a href="#notification_server.status">status</a></li></ul></div></div><h4>analysis (<a href="#domain_analysis">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_analysis.getErrors">getErrors</a></li><li><a href="#request_analysis.getHover">getHover</a></li><li><a href="#request_analysis.getLibraryDependencies">getLibraryDependencies</a></li><li><a href="#request_analysis.getNavigation">getNavigation</a></li><li><a href="#request_analysis.getReachableSources">getReachableSources</a></li><li><a href="#request_analysis.reanalyze">reanalyze</a></li><li><a href="#request_analysis.setAnalysisRoots">setAnalysisRoots</a></li><li><a href="#request_analysis.setGeneralSubscriptions">setGeneralSubscriptions</a></li><li><a href="#request_analysis.setPriorityFiles">setPriorityFiles</a></li><li><a href="#request_analysis.setSubscriptions">setSubscriptions</a></li><li><a href="#request_analysis.updateContent">updateContent</a></li><li><a href="#request_analysis.updateOptions">updateOptions</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_analysis.analyzedFiles">analyzedFiles</a></li><li><a href="#notification_analysis.closingLabels">closingLabels</a></li><li><a href="#notification_analysis.errors">errors</a></li><li><a href="#notification_analysis.flushResults">flushResults</a></li><li><a href="#notification_analysis.folding">folding</a></li><li><a href="#notification_analysis.highlights">highlights</a></li><li><a href="#notification_analysis.implemented">implemented</a></li><li><a href="#notification_analysis.invalidate">invalidate</a></li><li><a href="#notification_analysis.navigation">navigation</a></li><li><a href="#notification_analysis.occurrences">occurrences</a></li><li><a href="#notification_analysis.outline">outline</a></li><li><a href="#notification_analysis.overrides">overrides</a></li></ul></div></div><h4>completion (<a href="#domain_completion">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_completion.getSuggestions">getSuggestions</a></li><li><a href="#request_completion.setSubscriptions">setSubscriptions</a></li><li><a href="#request_completion.registerLibraryPaths">registerLibraryPaths</a></li><li><a href="#request_completion.getSuggestionDetails">getSuggestionDetails</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_completion.results">results</a></li><li><a href="#notification_completion.availableSuggestions">availableSuggestions</a></li><li><a href="#notification_completion.existingImports">existingImports</a></li></ul></div></div><h4>search (<a href="#domain_search">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_search.findElementReferences">findElementReferences</a></li><li><a href="#request_search.findMemberDeclarations">findMemberDeclarations</a></li><li><a href="#request_search.findMemberReferences">findMemberReferences</a></li><li><a href="#request_search.findTopLevelDeclarations">findTopLevelDeclarations</a></li><li><a href="#request_search.getTypeHierarchy">getTypeHierarchy</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_search.results">results</a></li></ul></div></div><h4>edit (<a href="#domain_edit">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_edit.format">format</a></li><li><a href="#request_edit.getAssists">getAssists</a></li><li><a href="#request_edit.getAvailableRefactorings">getAvailableRefactorings</a></li><li><a href="#request_edit.getFixes">getFixes</a></li><li><a href="#request_edit.getPostfixCompletion">getPostfixCompletion</a></li><li><a href="#request_edit.getRefactoring">getRefactoring</a></li><li><a href="#request_edit.sortMembers">sortMembers</a></li><li><a href="#request_edit.organizeDirectives">organizeDirectives</a></li></ul></div><h4>execution (<a href="#domain_execution">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_execution.createContext">createContext</a></li><li><a href="#request_execution.deleteContext">deleteContext</a></li><li><a href="#request_execution.getSuggestions">getSuggestions</a></li><li><a href="#request_execution.mapUri">mapUri</a></li><li><a href="#request_execution.setSubscriptions">setSubscriptions</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_execution.launchData">launchData</a></li></ul></div></div><h4>diagnostic (<a href="#domain_diagnostic">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_diagnostic.getDiagnostics">getDiagnostics</a></li><li><a href="#request_diagnostic.getServerPort">getServerPort</a></li></ul></div><h4>flutter (<a href="#domain_flutter">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_flutter.setSubscriptions">setSubscriptions</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_flutter.outline">outline</a></li></ul></div></div><h3>Types (<a href="#types">↑</a>)</h3><div class="subindex"><ul><li><a href="#type_AddContentOverlay">AddContentOverlay</a></li><li><a href="#type_AnalysisError">AnalysisError</a></li><li><a href="#type_AnalysisErrorFixes">AnalysisErrorFixes</a></li><li><a href="#type_AnalysisErrorSeverity">AnalysisErrorSeverity</a></li><li><a href="#type_AnalysisErrorType">AnalysisErrorType</a></li><li><a href="#type_AnalysisOptions">AnalysisOptions</a></li><li><a href="#type_AnalysisService">AnalysisService</a></li><li><a href="#type_AnalysisStatus">AnalysisStatus</a></li><li><a href="#type_AvailableSuggestion">AvailableSuggestion</a></li><li><a href="#type_AvailableSuggestionRelevanceTag">AvailableSuggestionRelevanceTag</a></li><li><a href="#type_AvailableSuggestionSet">AvailableSuggestionSet</a></li><li><a href="#type_BulkFix">BulkFix</a></li><li><a href="#type_BulkFixDetail">BulkFixDetail</a></li><li><a href="#type_ChangeContentOverlay">ChangeContentOverlay</a></li><li><a href="#type_ClosingLabel">ClosingLabel</a></li><li><a href="#type_CompletionId">CompletionId</a></li><li><a href="#type_CompletionService">CompletionService</a></li><li><a href="#type_CompletionSuggestion">CompletionSuggestion</a></li><li><a href="#type_CompletionSuggestionKind">CompletionSuggestionKind</a></li><li><a href="#type_ContextData">ContextData</a></li><li><a href="#type_DiagnosticMessage">DiagnosticMessage</a></li><li><a href="#type_Element">Element</a></li><li><a href="#type_ElementDeclaration">ElementDeclaration</a></li><li><a href="#type_ElementKind">ElementKind</a></li><li><a href="#type_ExecutableFile">ExecutableFile</a></li><li><a href="#type_ExecutableKind">ExecutableKind</a></li><li><a href="#type_ExecutionContextId">ExecutionContextId</a></li><li><a href="#type_ExecutionService">ExecutionService</a></li><li><a href="#type_ExistingImport">ExistingImport</a></li><li><a href="#type_ExistingImports">ExistingImports</a></li><li><a href="#type_FileKind">FileKind</a></li><li><a href="#type_FilePath">FilePath</a></li><li><a href="#type_FlutterOutline">FlutterOutline</a></li><li><a href="#type_FlutterOutlineAttribute">FlutterOutlineAttribute</a></li><li><a href="#type_FlutterOutlineKind">FlutterOutlineKind</a></li><li><a href="#type_FlutterService">FlutterService</a></li><li><a href="#type_FlutterWidgetProperty">FlutterWidgetProperty</a></li><li><a href="#type_FlutterWidgetPropertyEditor">FlutterWidgetPropertyEditor</a></li><li><a href="#type_FlutterWidgetPropertyEditorKind">FlutterWidgetPropertyEditorKind</a></li><li><a href="#type_FlutterWidgetPropertyValue">FlutterWidgetPropertyValue</a></li><li><a href="#type_FlutterWidgetPropertyValueEnumItem">FlutterWidgetPropertyValueEnumItem</a></li><li><a href="#type_FoldingKind">FoldingKind</a></li><li><a href="#type_FoldingRegion">FoldingRegion</a></li><li><a href="#type_GeneralAnalysisService">GeneralAnalysisService</a></li><li><a href="#type_HighlightRegion">HighlightRegion</a></li><li><a href="#type_HighlightRegionType">HighlightRegionType</a></li><li><a href="#type_HoverInformation">HoverInformation</a></li><li><a href="#type_ImplementedClass">ImplementedClass</a></li><li><a href="#type_ImplementedMember">ImplementedMember</a></li><li><a href="#type_ImportedElementSet">ImportedElementSet</a></li><li><a href="#type_ImportedElements">ImportedElements</a></li><li><a href="#type_IncludedSuggestionRelevanceTag">IncludedSuggestionRelevanceTag</a></li><li><a href="#type_IncludedSuggestionSet">IncludedSuggestionSet</a></li><li><a href="#type_KytheEntry">KytheEntry</a></li><li><a href="#type_KytheVName">KytheVName</a></li><li><a href="#type_LibraryPathSet">LibraryPathSet</a></li><li><a href="#type_LinkedEditGroup">LinkedEditGroup</a></li><li><a href="#type_LinkedEditSuggestion">LinkedEditSuggestion</a></li><li><a href="#type_LinkedEditSuggestionKind">LinkedEditSuggestionKind</a></li><li><a href="#type_Location">Location</a></li><li><a href="#type_NavigationRegion">NavigationRegion</a></li><li><a href="#type_NavigationTarget">NavigationTarget</a></li><li><a href="#type_Occurrences">Occurrences</a></li><li><a href="#type_Outline">Outline</a></li><li><a href="#type_OverriddenMember">OverriddenMember</a></li><li><a href="#type_Override">Override</a></li><li><a href="#type_Position">Position</a></li><li><a href="#type_PostfixTemplateDescriptor">PostfixTemplateDescriptor</a></li><li><a href="#type_PubStatus">PubStatus</a></li><li><a href="#type_RefactoringFeedback">RefactoringFeedback</a></li><li><a href="#type_RefactoringKind">RefactoringKind</a></li><li><a href="#type_RefactoringMethodParameter">RefactoringMethodParameter</a></li><li><a href="#type_RefactoringMethodParameterKind">RefactoringMethodParameterKind</a></li><li><a href="#type_RefactoringOptions">RefactoringOptions</a></li><li><a href="#type_RefactoringProblem">RefactoringProblem</a></li><li><a href="#type_RefactoringProblemSeverity">RefactoringProblemSeverity</a></li><li><a href="#type_RemoveContentOverlay">RemoveContentOverlay</a></li><li><a href="#type_RequestError">RequestError</a></li><li><a href="#type_RequestErrorCode">RequestErrorCode</a></li><li><a href="#type_RuntimeCompletionExpression">RuntimeCompletionExpression</a></li><li><a href="#type_RuntimeCompletionExpressionType">RuntimeCompletionExpressionType</a></li><li><a href="#type_RuntimeCompletionExpressionTypeKind">RuntimeCompletionExpressionTypeKind</a></li><li><a href="#type_RuntimeCompletionVariable">RuntimeCompletionVariable</a></li><li><a href="#type_SearchId">SearchId</a></li><li><a href="#type_SearchResult">SearchResult</a></li><li><a href="#type_SearchResultKind">SearchResultKind</a></li><li><a href="#type_ServerService">ServerService</a></li><li><a href="#type_SourceChange">SourceChange</a></li><li><a href="#type_SourceEdit">SourceEdit</a></li><li><a href="#type_SourceFileEdit">SourceFileEdit</a></li><li><a href="#type_TypeHierarchyItem">TypeHierarchyItem</a></li></ul></div><h3>Refactorings (<a href="#refactorings">↑</a>)</h3><div class="subindex"><ul><li><a href="#refactoring_CONVERT_GETTER_TO_METHOD">CONVERT_GETTER_TO_METHOD</a></li><li><a href="#refactoring_CONVERT_METHOD_TO_GETTER">CONVERT_METHOD_TO_GETTER</a></li><li><a href="#refactoring_EXTRACT_LOCAL_VARIABLE">EXTRACT_LOCAL_VARIABLE</a></li><li><a href="#refactoring_EXTRACT_METHOD">EXTRACT_METHOD</a></li><li><a href="#refactoring_EXTRACT_WIDGET">EXTRACT_WIDGET</a></li><li><a href="#refactoring_INLINE_LOCAL_VARIABLE">INLINE_LOCAL_VARIABLE</a></li><li><a href="#refactoring_INLINE_METHOD">INLINE_METHOD</a></li><li><a href="#refactoring_MOVE_FILE">MOVE_FILE</a></li><li><a href="#refactoring_RENAME">RENAME</a></li></ul></div>
+<h3>Domains</h3><h4>server (<a href="#domain_server">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_server.getVersion">getVersion</a></li><li><a href="#request_server.shutdown">shutdown</a></li><li><a href="#request_server.setSubscriptions">setSubscriptions</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_server.connected">connected</a></li><li><a href="#notification_server.error">error</a></li><li><a href="#notification_server.status">status</a></li></ul></div></div><h4>analysis (<a href="#domain_analysis">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_analysis.getErrors">getErrors</a></li><li><a href="#request_analysis.getHover">getHover</a></li><li><a href="#request_analysis.getLibraryDependencies">getLibraryDependencies</a></li><li><a href="#request_analysis.getNavigation">getNavigation</a></li><li><a href="#request_analysis.getReachableSources">getReachableSources</a></li><li><a href="#request_analysis.reanalyze">reanalyze</a></li><li><a href="#request_analysis.setAnalysisRoots">setAnalysisRoots</a></li><li><a href="#request_analysis.setGeneralSubscriptions">setGeneralSubscriptions</a></li><li><a href="#request_analysis.setPriorityFiles">setPriorityFiles</a></li><li><a href="#request_analysis.setSubscriptions">setSubscriptions</a></li><li><a href="#request_analysis.updateContent">updateContent</a></li><li><a href="#request_analysis.updateOptions">updateOptions</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_analysis.analyzedFiles">analyzedFiles</a></li><li><a href="#notification_analysis.closingLabels">closingLabels</a></li><li><a href="#notification_analysis.errors">errors</a></li><li><a href="#notification_analysis.flushResults">flushResults</a></li><li><a href="#notification_analysis.folding">folding</a></li><li><a href="#notification_analysis.highlights">highlights</a></li><li><a href="#notification_analysis.implemented">implemented</a></li><li><a href="#notification_analysis.invalidate">invalidate</a></li><li><a href="#notification_analysis.navigation">navigation</a></li><li><a href="#notification_analysis.occurrences">occurrences</a></li><li><a href="#notification_analysis.outline">outline</a></li><li><a href="#notification_analysis.overrides">overrides</a></li></ul></div></div><h4>completion (<a href="#domain_completion">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_completion.getSuggestions">getSuggestions</a></li><li><a href="#request_completion.setSubscriptions">setSubscriptions</a></li><li><a href="#request_completion.registerLibraryPaths">registerLibraryPaths</a></li><li><a href="#request_completion.getSuggestionDetails">getSuggestionDetails</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_completion.results">results</a></li><li><a href="#notification_completion.availableSuggestions">availableSuggestions</a></li><li><a href="#notification_completion.existingImports">existingImports</a></li></ul></div></div><h4>search (<a href="#domain_search">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_search.findElementReferences">findElementReferences</a></li><li><a href="#request_search.findMemberDeclarations">findMemberDeclarations</a></li><li><a href="#request_search.findMemberReferences">findMemberReferences</a></li><li><a href="#request_search.findTopLevelDeclarations">findTopLevelDeclarations</a></li><li><a href="#request_search.getTypeHierarchy">getTypeHierarchy</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_search.results">results</a></li></ul></div></div><h4>edit (<a href="#domain_edit">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_edit.format">format</a></li><li><a href="#request_edit.getAssists">getAssists</a></li><li><a href="#request_edit.getAvailableRefactorings">getAvailableRefactorings</a></li><li><a href="#request_edit.getFixes">getFixes</a></li><li><a href="#request_edit.getPostfixCompletion">getPostfixCompletion</a></li><li><a href="#request_edit.getRefactoring">getRefactoring</a></li><li><a href="#request_edit.sortMembers">sortMembers</a></li><li><a href="#request_edit.organizeDirectives">organizeDirectives</a></li></ul></div><h4>execution (<a href="#domain_execution">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_execution.createContext">createContext</a></li><li><a href="#request_execution.deleteContext">deleteContext</a></li><li><a href="#request_execution.getSuggestions">getSuggestions</a></li><li><a href="#request_execution.mapUri">mapUri</a></li><li><a href="#request_execution.setSubscriptions">setSubscriptions</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_execution.launchData">launchData</a></li></ul></div></div><h4>diagnostic (<a href="#domain_diagnostic">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_diagnostic.getDiagnostics">getDiagnostics</a></li><li><a href="#request_diagnostic.getServerPort">getServerPort</a></li></ul></div><h4>flutter (<a href="#domain_flutter">↑</a>)</h4><div class="subindex"><h5>Requests</h5><ul><li><a href="#request_flutter.setSubscriptions">setSubscriptions</a></li></ul><h5>Notifications</h5><div class="subindex"><ul><li><a href="#notification_flutter.outline">outline</a></li></ul></div></div><h3>Types (<a href="#types">↑</a>)</h3><div class="subindex"><ul><li><a href="#type_AddContentOverlay">AddContentOverlay</a></li><li><a href="#type_AnalysisError">AnalysisError</a></li><li><a href="#type_AnalysisErrorFixes">AnalysisErrorFixes</a></li><li><a href="#type_AnalysisErrorSeverity">AnalysisErrorSeverity</a></li><li><a href="#type_AnalysisErrorType">AnalysisErrorType</a></li><li><a href="#type_AnalysisOptions">AnalysisOptions</a></li><li><a href="#type_AnalysisService">AnalysisService</a></li><li><a href="#type_AnalysisStatus">AnalysisStatus</a></li><li><a href="#type_AvailableSuggestion">AvailableSuggestion</a></li><li><a href="#type_AvailableSuggestionRelevanceTag">AvailableSuggestionRelevanceTag</a></li><li><a href="#type_AvailableSuggestionSet">AvailableSuggestionSet</a></li><li><a href="#type_BulkFix">BulkFix</a></li><li><a href="#type_BulkFixDetail">BulkFixDetail</a></li><li><a href="#type_ChangeContentOverlay">ChangeContentOverlay</a></li><li><a href="#type_ClosingLabel">ClosingLabel</a></li><li><a href="#type_CompletionId">CompletionId</a></li><li><a href="#type_CompletionService">CompletionService</a></li><li><a href="#type_CompletionSuggestion">CompletionSuggestion</a></li><li><a href="#type_CompletionSuggestionKind">CompletionSuggestionKind</a></li><li><a href="#type_ContextData">ContextData</a></li><li><a href="#type_DiagnosticMessage">DiagnosticMessage</a></li><li><a href="#type_Element">Element</a></li><li><a href="#type_ElementDeclaration">ElementDeclaration</a></li><li><a href="#type_ElementKind">ElementKind</a></li><li><a href="#type_ExecutableFile">ExecutableFile</a></li><li><a href="#type_ExecutableKind">ExecutableKind</a></li><li><a href="#type_ExecutionContextId">ExecutionContextId</a></li><li><a href="#type_ExecutionService">ExecutionService</a></li><li><a href="#type_ExistingImport">ExistingImport</a></li><li><a href="#type_ExistingImports">ExistingImports</a></li><li><a href="#type_FileKind">FileKind</a></li><li><a href="#type_FilePath">FilePath</a></li><li><a href="#type_FlutterOutline">FlutterOutline</a></li><li><a href="#type_FlutterOutlineAttribute">FlutterOutlineAttribute</a></li><li><a href="#type_FlutterOutlineKind">FlutterOutlineKind</a></li><li><a href="#type_FlutterService">FlutterService</a></li><li><a href="#type_FlutterWidgetProperty">FlutterWidgetProperty</a></li><li><a href="#type_FlutterWidgetPropertyEditor">FlutterWidgetPropertyEditor</a></li><li><a href="#type_FlutterWidgetPropertyEditorKind">FlutterWidgetPropertyEditorKind</a></li><li><a href="#type_FlutterWidgetPropertyValue">FlutterWidgetPropertyValue</a></li><li><a href="#type_FlutterWidgetPropertyValueEnumItem">FlutterWidgetPropertyValueEnumItem</a></li><li><a href="#type_FoldingKind">FoldingKind</a></li><li><a href="#type_FoldingRegion">FoldingRegion</a></li><li><a href="#type_GeneralAnalysisService">GeneralAnalysisService</a></li><li><a href="#type_HighlightRegion">HighlightRegion</a></li><li><a href="#type_HighlightRegionType">HighlightRegionType</a></li><li><a href="#type_HoverInformation">HoverInformation</a></li><li><a href="#type_ImplementedClass">ImplementedClass</a></li><li><a href="#type_ImplementedMember">ImplementedMember</a></li><li><a href="#type_ImportedElementSet">ImportedElementSet</a></li><li><a href="#type_ImportedElements">ImportedElements</a></li><li><a href="#type_IncludedSuggestionRelevanceTag">IncludedSuggestionRelevanceTag</a></li><li><a href="#type_IncludedSuggestionSet">IncludedSuggestionSet</a></li><li><a href="#type_KytheEntry">KytheEntry</a></li><li><a href="#type_KytheVName">KytheVName</a></li><li><a href="#type_LibraryPathSet">LibraryPathSet</a></li><li><a href="#type_LinkedEditGroup">LinkedEditGroup</a></li><li><a href="#type_LinkedEditSuggestion">LinkedEditSuggestion</a></li><li><a href="#type_LinkedEditSuggestionKind">LinkedEditSuggestionKind</a></li><li><a href="#type_Location">Location</a></li><li><a href="#type_NavigationRegion">NavigationRegion</a></li><li><a href="#type_NavigationTarget">NavigationTarget</a></li><li><a href="#type_Occurrences">Occurrences</a></li><li><a href="#type_Outline">Outline</a></li><li><a href="#type_OverriddenMember">OverriddenMember</a></li><li><a href="#type_Override">Override</a></li><li><a href="#type_Position">Position</a></li><li><a href="#type_PostfixTemplateDescriptor">PostfixTemplateDescriptor</a></li><li><a href="#type_PubStatus">PubStatus</a></li><li><a href="#type_RefactoringFeedback">RefactoringFeedback</a></li><li><a href="#type_RefactoringKind">RefactoringKind</a></li><li><a href="#type_RefactoringMethodParameter">RefactoringMethodParameter</a></li><li><a href="#type_RefactoringMethodParameterKind">RefactoringMethodParameterKind</a></li><li><a href="#type_RefactoringOptions">RefactoringOptions</a></li><li><a href="#type_RefactoringProblem">RefactoringProblem</a></li><li><a href="#type_RefactoringProblemSeverity">RefactoringProblemSeverity</a></li><li><a href="#type_RemoveContentOverlay">RemoveContentOverlay</a></li><li><a href="#type_RequestError">RequestError</a></li><li><a href="#type_RequestErrorCode">RequestErrorCode</a></li><li><a href="#type_RuntimeCompletionExpression">RuntimeCompletionExpression</a></li><li><a href="#type_RuntimeCompletionExpressionType">RuntimeCompletionExpressionType</a></li><li><a href="#type_RuntimeCompletionExpressionTypeKind">RuntimeCompletionExpressionTypeKind</a></li><li><a href="#type_RuntimeCompletionVariable">RuntimeCompletionVariable</a></li><li><a href="#type_SearchId">SearchId</a></li><li><a href="#type_SearchResult">SearchResult</a></li><li><a href="#type_SearchResultKind">SearchResultKind</a></li><li><a href="#type_ServerService">ServerService</a></li><li><a href="#type_SourceChange">SourceChange</a></li><li><a href="#type_SourceEdit">SourceEdit</a></li><li><a href="#type_SourceFileEdit">SourceFileEdit</a></li><li><a href="#type_TypeHierarchyItem">TypeHierarchyItem</a></li></ul></div><h3>Refactorings (<a href="#refactorings">↑</a>)</h3><div class="subindex"><ul><li><a href="#refactoring_CONVERT_GETTER_TO_METHOD">CONVERT_GETTER_TO_METHOD</a></li><li><a href="#refactoring_CONVERT_METHOD_TO_GETTER">CONVERT_METHOD_TO_GETTER</a></li><li><a href="#refactoring_EXTRACT_LOCAL_VARIABLE">EXTRACT_LOCAL_VARIABLE</a></li><li><a href="#refactoring_EXTRACT_METHOD">EXTRACT_METHOD</a></li><li><a href="#refactoring_EXTRACT_WIDGET">EXTRACT_WIDGET</a></li><li><a href="#refactoring_INLINE_LOCAL_VARIABLE">INLINE_LOCAL_VARIABLE</a></li><li><a href="#refactoring_INLINE_METHOD">INLINE_METHOD</a></li><li><a href="#refactoring_MOVE_FILE">MOVE_FILE</a></li><li><a href="#refactoring_RENAME">RENAME</a></li></ul></div>
 
 
 </body></html>
\ No newline at end of file
diff --git a/pkg/analysis_server/lib/protocol/protocol_constants.dart b/pkg/analysis_server/lib/protocol/protocol_constants.dart
index 2689506..fd9998b 100644
--- a/pkg/analysis_server/lib/protocol/protocol_constants.dart
+++ b/pkg/analysis_server/lib/protocol/protocol_constants.dart
@@ -350,8 +350,6 @@
 const String SERVER_NOTIFICATION_ERROR_IS_FATAL = 'isFatal';
 const String SERVER_NOTIFICATION_ERROR_MESSAGE = 'message';
 const String SERVER_NOTIFICATION_ERROR_STACK_TRACE = 'stackTrace';
-const String SERVER_NOTIFICATION_LOG = 'server.log';
-const String SERVER_NOTIFICATION_LOG_ENTRY = 'entry';
 const String SERVER_NOTIFICATION_STATUS = 'server.status';
 const String SERVER_NOTIFICATION_STATUS_ANALYSIS = 'analysis';
 const String SERVER_NOTIFICATION_STATUS_PUB = 'pub';
diff --git a/pkg/analysis_server/lib/protocol/protocol_generated.dart b/pkg/analysis_server/lib/protocol/protocol_generated.dart
index 8cd904d..ac2f847 100644
--- a/pkg/analysis_server/lib/protocol/protocol_generated.dart
+++ b/pkg/analysis_server/lib/protocol/protocol_generated.dart
@@ -15871,249 +15871,18 @@
   int get hashCode => version.hashCode;
 }
 
-/// ServerLogEntry
-///
-/// {
-///   "time": int
-///   "kind": ServerLogEntryKind
-///   "data": String
-/// }
-///
-/// Clients may not extend, implement or mix-in this class.
-class ServerLogEntry implements HasToJson {
-  /// The time (milliseconds since epoch) at which the server created this log
-  /// entry.
-  int time;
-
-  /// The kind of the entry, used to determine how to interpret the "data"
-  /// field.
-  ServerLogEntryKind kind;
-
-  /// The payload of the entry, the actual format is determined by the "kind"
-  /// field.
-  String data;
-
-  ServerLogEntry(this.time, this.kind, this.data);
-
-  factory ServerLogEntry.fromJson(
-      JsonDecoder jsonDecoder, String jsonPath, Object? json) {
-    json ??= {};
-    if (json is Map) {
-      int time;
-      if (json.containsKey('time')) {
-        time = jsonDecoder.decodeInt(jsonPath + '.time', json['time']);
-      } else {
-        throw jsonDecoder.mismatch(jsonPath, 'time');
-      }
-      ServerLogEntryKind kind;
-      if (json.containsKey('kind')) {
-        kind = ServerLogEntryKind.fromJson(
-            jsonDecoder, jsonPath + '.kind', json['kind']);
-      } else {
-        throw jsonDecoder.mismatch(jsonPath, 'kind');
-      }
-      String data;
-      if (json.containsKey('data')) {
-        data = jsonDecoder.decodeString(jsonPath + '.data', json['data']);
-      } else {
-        throw jsonDecoder.mismatch(jsonPath, 'data');
-      }
-      return ServerLogEntry(time, kind, data);
-    } else {
-      throw jsonDecoder.mismatch(jsonPath, 'ServerLogEntry', json);
-    }
-  }
-
-  @override
-  Map<String, Object> toJson() {
-    var result = <String, Object>{};
-    result['time'] = time;
-    result['kind'] = kind.toJson();
-    result['data'] = data;
-    return result;
-  }
-
-  @override
-  String toString() => json.encode(toJson());
-
-  @override
-  bool operator ==(other) {
-    if (other is ServerLogEntry) {
-      return time == other.time && kind == other.kind && data == other.data;
-    }
-    return false;
-  }
-
-  @override
-  int get hashCode => Object.hash(
-        time,
-        kind,
-        data,
-      );
-}
-
-/// ServerLogEntryKind
-///
-/// enum {
-///   NOTIFICATION
-///   RAW
-///   REQUEST
-///   RESPONSE
-/// }
-///
-/// Clients may not extend, implement or mix-in this class.
-class ServerLogEntryKind implements Enum {
-  /// A notification from the server, such as "analysis.highlights". The "data"
-  /// field contains a JSON object with abbreviated notification.
-  static const ServerLogEntryKind NOTIFICATION =
-      ServerLogEntryKind._('NOTIFICATION');
-
-  /// Arbitrary string, describing some event that happened in the server, e.g.
-  /// starting a file analysis, and details which files were accessed. These
-  /// entries are not structured, but provide context information about
-  /// requests and notification, and can be related by "time" for further
-  /// manual analysis.
-  static const ServerLogEntryKind RAW = ServerLogEntryKind._('RAW');
-
-  /// A request from the client, as the server views it, e.g.
-  /// "edit.getAssists". The "data" field contains a JSON object with
-  /// abbreviated request.
-  static const ServerLogEntryKind REQUEST = ServerLogEntryKind._('REQUEST');
-
-  /// Various counters and measurements related to execution of a request. The
-  /// "data" field contains a JSON object with following fields:
-  ///
-  /// - "id" - the id of the request - copied from the request.
-  /// - "method" - the method of the request, e.g. "edit.getAssists".
-  /// - "clientRequestTime" - the time (milliseconds since epoch) at which the
-  ///   client made the request - copied from the request.
-  /// - "serverRequestTime" - the time (milliseconds since epoch) at which the
-  ///   server received and decoded the JSON request.
-  /// - "responseTime" - the time (milliseconds since epoch) at which the
-  ///   server created the response to be encoded into JSON and sent to the
-  ///   client.
-  static const ServerLogEntryKind RESPONSE = ServerLogEntryKind._('RESPONSE');
-
-  /// A list containing all of the enum values that are defined.
-  static const List<ServerLogEntryKind> VALUES = <ServerLogEntryKind>[
-    NOTIFICATION,
-    RAW,
-    REQUEST,
-    RESPONSE
-  ];
-
-  @override
-  final String name;
-
-  const ServerLogEntryKind._(this.name);
-
-  factory ServerLogEntryKind(String name) {
-    switch (name) {
-      case 'NOTIFICATION':
-        return NOTIFICATION;
-      case 'RAW':
-        return RAW;
-      case 'REQUEST':
-        return REQUEST;
-      case 'RESPONSE':
-        return RESPONSE;
-    }
-    throw Exception('Illegal enum value: $name');
-  }
-
-  factory ServerLogEntryKind.fromJson(
-      JsonDecoder jsonDecoder, String jsonPath, Object? json) {
-    if (json is String) {
-      try {
-        return ServerLogEntryKind(json);
-      } catch (_) {
-        // Fall through
-      }
-    }
-    throw jsonDecoder.mismatch(jsonPath, 'ServerLogEntryKind', json);
-  }
-
-  @override
-  String toString() => 'ServerLogEntryKind.$name';
-
-  String toJson() => name;
-}
-
-/// server.log params
-///
-/// {
-///   "entry": ServerLogEntry
-/// }
-///
-/// Clients may not extend, implement or mix-in this class.
-class ServerLogParams implements HasToJson {
-  ServerLogEntry entry;
-
-  ServerLogParams(this.entry);
-
-  factory ServerLogParams.fromJson(
-      JsonDecoder jsonDecoder, String jsonPath, Object? json) {
-    json ??= {};
-    if (json is Map) {
-      ServerLogEntry entry;
-      if (json.containsKey('entry')) {
-        entry = ServerLogEntry.fromJson(
-            jsonDecoder, jsonPath + '.entry', json['entry']);
-      } else {
-        throw jsonDecoder.mismatch(jsonPath, 'entry');
-      }
-      return ServerLogParams(entry);
-    } else {
-      throw jsonDecoder.mismatch(jsonPath, 'server.log params', json);
-    }
-  }
-
-  factory ServerLogParams.fromNotification(Notification notification) {
-    return ServerLogParams.fromJson(
-        ResponseDecoder(null), 'params', notification.params);
-  }
-
-  @override
-  Map<String, Object> toJson() {
-    var result = <String, Object>{};
-    result['entry'] = entry.toJson();
-    return result;
-  }
-
-  Notification toNotification() {
-    return Notification('server.log', toJson());
-  }
-
-  @override
-  String toString() => json.encode(toJson());
-
-  @override
-  bool operator ==(other) {
-    if (other is ServerLogParams) {
-      return entry == other.entry;
-    }
-    return false;
-  }
-
-  @override
-  int get hashCode => entry.hashCode;
-}
-
 /// ServerService
 ///
 /// enum {
-///   LOG
 ///   STATUS
 /// }
 ///
 /// Clients may not extend, implement or mix-in this class.
 class ServerService implements Enum {
-  static const ServerService LOG = ServerService._('LOG');
-
   static const ServerService STATUS = ServerService._('STATUS');
 
   /// A list containing all of the enum values that are defined.
-  static const List<ServerService> VALUES = <ServerService>[LOG, STATUS];
+  static const List<ServerService> VALUES = <ServerService>[STATUS];
 
   @override
   final String name;
@@ -16122,8 +15891,6 @@
 
   factory ServerService(String name) {
     switch (name) {
-      case 'LOG':
-        return LOG;
       case 'STATUS':
         return STATUS;
     }
diff --git a/pkg/analysis_server/lib/src/analysis_server.dart b/pkg/analysis_server/lib/src/analysis_server.dart
index 5a3e760..26000c7 100644
--- a/pkg/analysis_server/lib/src/analysis_server.dart
+++ b/pkg/analysis_server/lib/src/analysis_server.dart
@@ -40,7 +40,6 @@
 import 'package:analysis_server/src/server/sdk_configuration.dart';
 import 'package:analysis_server/src/services/flutter/widget_descriptions.dart';
 import 'package:analysis_server/src/utilities/process.dart';
-import 'package:analysis_server/src/utilities/request_statistics.dart';
 import 'package:analyzer/dart/analysis/results.dart';
 import 'package:analyzer/dart/ast/ast.dart';
 import 'package:analyzer/exception/exception.dart';
@@ -131,7 +130,6 @@
     InstrumentationService instrumentationService, {
     http.Client? httpClient,
     ProcessRunner? processRunner,
-    RequestStatisticsHelper? requestStatistics,
     DiagnosticServer? diagnosticServer,
     this.detachableFileSystemManager,
     // Disable to avoid using this in unit tests.
@@ -146,7 +144,6 @@
           httpClient,
           processRunner,
           NotificationManager(channel, baseResourceProvider.pathContext),
-          requestStatistics: requestStatistics,
           enableBazelWatcher: enableBazelWatcher,
         ) {
     var contextManagerCallbacks =
diff --git a/pkg/analysis_server/lib/src/analysis_server_abstract.dart b/pkg/analysis_server/lib/src/analysis_server_abstract.dart
index 9e758b6..7779957 100644
--- a/pkg/analysis_server/lib/src/analysis_server_abstract.dart
+++ b/pkg/analysis_server/lib/src/analysis_server_abstract.dart
@@ -26,8 +26,6 @@
 import 'package:analysis_server/src/utilities/file_string_sink.dart';
 import 'package:analysis_server/src/utilities/null_string_sink.dart';
 import 'package:analysis_server/src/utilities/process.dart';
-import 'package:analysis_server/src/utilities/request_statistics.dart';
-import 'package:analysis_server/src/utilities/tee_string_sink.dart';
 import 'package:analyzer/dart/analysis/analysis_context.dart';
 import 'package:analyzer/dart/analysis/results.dart';
 import 'package:analyzer/dart/analysis/session.dart';
@@ -127,8 +125,6 @@
   /// Performance information before initial analysis is complete.
   final ServerPerformance performanceDuringStartup = ServerPerformance();
 
-  RequestStatisticsHelper? requestStatistics;
-
   PerformanceLog? analysisPerformanceLogger;
 
   /// The set of the files that are currently priority.
@@ -155,7 +151,6 @@
     http.Client? httpClient,
     ProcessRunner? processRunner,
     this.notificationManager, {
-    this.requestStatistics,
     bool enableBazelWatcher = false,
   })  : resourceProvider = OverlayResourceProvider(baseResourceProvider),
         pubApi = PubApi(instrumentationService, httpClient,
@@ -195,10 +190,6 @@
         sink = FileStringSink(path);
       }
     }
-    final requestStatistics = this.requestStatistics;
-    if (requestStatistics != null) {
-      sink = TeeStringSink(sink, requestStatistics.perfLoggerStringSink);
-    }
     final analysisPerformanceLogger =
         this.analysisPerformanceLogger = PerformanceLog(sink);
 
diff --git a/pkg/analysis_server/lib/src/channel/byte_stream_channel.dart b/pkg/analysis_server/lib/src/channel/byte_stream_channel.dart
index bfbc6ba..869c9b9 100644
--- a/pkg/analysis_server/lib/src/channel/byte_stream_channel.dart
+++ b/pkg/analysis_server/lib/src/channel/byte_stream_channel.dart
@@ -8,7 +8,6 @@
 
 import 'package:analysis_server/protocol/protocol.dart';
 import 'package:analysis_server/src/channel/channel.dart';
-import 'package:analysis_server/src/utilities/request_statistics.dart';
 import 'package:analyzer/instrumentation/instrumentation.dart';
 
 /// Instances of the class [ByteStreamClientChannel] implement a
@@ -79,9 +78,6 @@
   /// The instrumentation service that is to be used by this analysis server.
   final InstrumentationService _instrumentationService;
 
-  /// The helper for recording request / response statistics.
-  final RequestStatisticsHelper? _requestStatistics;
-
   /// Completer that will be signalled when the input stream is closed.
   final Completer _closed = Completer();
 
@@ -89,11 +85,7 @@
   bool _closeRequested = false;
 
   ByteStreamServerChannel(
-      this._input, this._output, this._instrumentationService,
-      {RequestStatisticsHelper? requestStatistics})
-      : _requestStatistics = requestStatistics {
-    _requestStatistics?.serverChannel = this;
-  }
+      this._input, this._output, this._instrumentationService);
 
   /// Future that will be completed when the input stream is closed.
   Future get closed {
@@ -129,10 +121,7 @@
     }
     var jsonEncoding = json.encode(notification.toJson());
     _outputLine(jsonEncoding);
-    if (!identical(notification.event, 'server.log')) {
-      _instrumentationService.logNotification(jsonEncoding);
-      _requestStatistics?.logNotification(notification);
-    }
+    _instrumentationService.logNotification(jsonEncoding);
   }
 
   @override
@@ -142,7 +131,6 @@
     if (_closeRequested) {
       return;
     }
-    _requestStatistics?.addResponse(response);
     var jsonEncoding = json.encode(response.toJson());
     _outputLine(jsonEncoding);
     _instrumentationService.logResponse(jsonEncoding);
@@ -172,7 +160,6 @@
       sendResponse(Response.invalidRequestFormat());
       return;
     }
-    _requestStatistics?.addRequest(request);
     onRequest(request);
   }
 }
diff --git a/pkg/analysis_server/lib/src/domain_completion.dart b/pkg/analysis_server/lib/src/domain_completion.dart
index 06753db..d44110b 100644
--- a/pkg/analysis_server/lib/src/domain_completion.dart
+++ b/pkg/analysis_server/lib/src/domain_completion.dart
@@ -501,8 +501,6 @@
           return;
         }
 
-        server.requestStatistics?.addItemTimeNow(request, 'resolvedUnit');
-
         if (offset < 0 || offset > resolvedUnit.content.length) {
           server.sendResponse(Response.invalidParameter(
               request,
diff --git a/pkg/analysis_server/lib/src/domain_server.dart b/pkg/analysis_server/lib/src/domain_server.dart
index 559f3b8..78a3cee 100644
--- a/pkg/analysis_server/lib/src/domain_server.dart
+++ b/pkg/analysis_server/lib/src/domain_server.dart
@@ -49,9 +49,6 @@
     server.serverServices =
         ServerSetSubscriptionsParams.fromRequest(request).subscriptions.toSet();
 
-    server.requestStatistics?.isNotificationSubscribed =
-        server.serverServices.contains(ServerService.LOG);
-
     return ServerSetSubscriptionsResult().toResponse(request.id);
   }
 
diff --git a/pkg/analysis_server/lib/src/edit/edit_domain.dart b/pkg/analysis_server/lib/src/edit/edit_domain.dart
index b73448c..9f90b8b 100644
--- a/pkg/analysis_server/lib/src/edit/edit_domain.dart
+++ b/pkg/analysis_server/lib/src/edit/edit_domain.dart
@@ -207,7 +207,6 @@
     //
     var responses =
         await waitForResponses(pluginFutures, requestParameters: requestParams);
-    server.requestStatistics?.addItemTimeNow(request, 'pluginResponses');
     var converter = ResultConverter();
     var pluginChanges = <plugin.PrioritizedSourceChange>[];
     for (var response in responses) {
@@ -268,7 +267,6 @@
     //
     var responses =
         await waitForResponses(pluginFutures, requestParameters: requestParams);
-    server.requestStatistics?.addItemTimeNow(request, 'pluginResponses');
     var converter = ResultConverter();
     for (var response in responses) {
       var result = plugin.EditGetFixesResult.fromResponse(response);
@@ -593,7 +591,6 @@
       Request request, String file, int offset) async {
     var errorFixesList = <AnalysisErrorFixes>[];
     var result = await server.getResolvedUnit(file);
-    server.requestStatistics?.addItemTimeNow(request, 'resolvedUnit');
     if (result != null) {
       var lineInfo = result.lineInfo;
       var requestLine = lineInfo.getLocation(offset).lineNumber;
@@ -644,7 +641,6 @@
         }
       }
     }
-    server.requestStatistics?.addItemTimeNow(request, 'computedFixes');
     return errorFixesList;
   }
 
@@ -740,7 +736,6 @@
     var changes = <SourceChange>[];
 
     var result = await server.getResolvedUnit(file);
-    server.requestStatistics?.addItemTimeNow(request, 'resolvedUnit');
 
     if (result != null) {
       var context = DartAssistContextImpl(
@@ -770,8 +765,6 @@
           'parameters': parametersFile,
         });
       }
-
-      server.requestStatistics?.addItemTimeNow(request, 'computedAssists');
     }
 
     return changes;
diff --git a/pkg/analysis_server/lib/src/server/driver.dart b/pkg/analysis_server/lib/src/server/driver.dart
index 5016f76..a44869e 100644
--- a/pkg/analysis_server/lib/src/server/driver.dart
+++ b/pkg/analysis_server/lib/src/server/driver.dart
@@ -24,7 +24,6 @@
 import 'package:analysis_server/src/server/sdk_configuration.dart';
 import 'package:analysis_server/src/server/stdio_server.dart';
 import 'package:analysis_server/src/socket_server.dart';
-import 'package:analysis_server/src/utilities/request_statistics.dart';
 import 'package:analysis_server/starter.dart';
 import 'package:analyzer/file_system/physical_file_system.dart';
 import 'package:analyzer/instrumentation/file_instrumentation.dart';
@@ -303,7 +302,6 @@
           dartSdkManager,
           crashReportingAttachmentsBuilder,
           instrumentationService,
-          RequestStatisticsHelper(),
           analytics,
           diagnosticServerPort,
           errorNotifier,
@@ -318,7 +316,6 @@
     DartSdkManager dartSdkManager,
     CrashReportingAttachmentsBuilder crashReportingAttachmentsBuilder,
     InstrumentationService instrumentationService,
-    RequestStatisticsHelper requestStatistics,
     telemetry.Analytics analytics,
     int? diagnosticServerPort,
     ErrorNotifier errorNotifier,
@@ -353,7 +350,6 @@
         dartSdkManager,
         crashReportingAttachmentsBuilder,
         instrumentationService,
-        requestStatistics,
         diagnosticServer,
         detachableFileSystemManager);
     httpServer = HttpAnalysisServer(socketServer);
diff --git a/pkg/analysis_server/lib/src/server/isolate_analysis_server.dart b/pkg/analysis_server/lib/src/server/isolate_analysis_server.dart
index 2ef30d3..882f759 100644
--- a/pkg/analysis_server/lib/src/server/isolate_analysis_server.dart
+++ b/pkg/analysis_server/lib/src/server/isolate_analysis_server.dart
@@ -28,7 +28,6 @@
       serverIsolateChannel.stream,
       IOSink(serverIsolateChannel.sink),
       socketServer.instrumentationService,
-      requestStatistics: socketServer.requestStatistics,
     );
     socketServer.createAnalysisServer(serverChannel);
     await serverChannel.closed;
diff --git a/pkg/analysis_server/lib/src/server/stdio_server.dart b/pkg/analysis_server/lib/src/server/stdio_server.dart
index 06c5030..78a036b 100644
--- a/pkg/analysis_server/lib/src/server/stdio_server.dart
+++ b/pkg/analysis_server/lib/src/server/stdio_server.dart
@@ -27,7 +27,6 @@
       stdin,
       stdout,
       socketServer.instrumentationService,
-      requestStatistics: socketServer.requestStatistics,
     );
     socketServer.createAnalysisServer(serverChannel);
     return serverChannel.closed;
diff --git a/pkg/analysis_server/lib/src/socket_server.dart b/pkg/analysis_server/lib/src/socket_server.dart
index 59cafe6..5763cfe 100644
--- a/pkg/analysis_server/lib/src/socket_server.dart
+++ b/pkg/analysis_server/lib/src/socket_server.dart
@@ -10,7 +10,6 @@
 import 'package:analysis_server/src/server/crash_reporting_attachments.dart';
 import 'package:analysis_server/src/server/detachable_filesystem_manager.dart';
 import 'package:analysis_server/src/server/diagnostic_server.dart';
-import 'package:analysis_server/src/utilities/request_statistics.dart';
 import 'package:analyzer/file_system/physical_file_system.dart';
 import 'package:analyzer/instrumentation/instrumentation.dart';
 import 'package:analyzer/src/generated/sdk.dart';
@@ -36,7 +35,6 @@
 
   final CrashReportingAttachmentsBuilder crashReportingAttachmentsBuilder;
   final InstrumentationService instrumentationService;
-  final RequestStatisticsHelper? requestStatistics;
   @override
   final DiagnosticServer? diagnosticServer;
   final DetachableFileSystemManager? detachableFileSystemManager;
@@ -51,7 +49,6 @@
       this.sdkManager,
       this.crashReportingAttachmentsBuilder,
       this.instrumentationService,
-      this.requestStatistics,
       this.diagnosticServer,
       this.detachableFileSystemManager);
 
@@ -78,7 +75,6 @@
       sdkManager,
       crashReportingAttachmentsBuilder,
       instrumentationService,
-      requestStatistics: requestStatistics,
       diagnosticServer: diagnosticServer,
       detachableFileSystemManager: detachableFileSystemManager,
       enableBazelWatcher: true,
diff --git a/pkg/analysis_server/lib/src/utilities/request_statistics.dart b/pkg/analysis_server/lib/src/utilities/request_statistics.dart
deleted file mode 100644
index 7cdf234..0000000
--- a/pkg/analysis_server/lib/src/utilities/request_statistics.dart
+++ /dev/null
@@ -1,256 +0,0 @@
-// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:io';
-
-import 'package:analysis_server/protocol/protocol.dart';
-import 'package:analysis_server/protocol/protocol_generated.dart';
-import 'package:analysis_server/src/channel/byte_stream_channel.dart';
-
-/// Helper for tracking request handling statistics.
-///
-/// All [DateTime] are local, not UTC.
-class RequestStatisticsHelper {
-  final String _sdkVersion = Platform.version.split(' ').first;
-
-  final Map<String, _RequestStatistics> _statisticsMap = {};
-
-  /// The [StringSink] to which performance logger should copy its output.
-  late final _ServerLogStringSink _perfLoggerStringSink =
-      _ServerLogStringSink(this);
-
-  /// The channel to send 'server.log' notifications to.
-  ByteStreamServerChannel? _serverChannel;
-
-  /// Is `true` if the client subscribed for "server.log" notification.
-  bool _isNotificationSubscribed = false;
-
-  RequestStatisticsHelper();
-
-  /// Set whether the client subscribed for "server.log" notification.
-  set isNotificationSubscribed(bool value) {
-    _isNotificationSubscribed = value;
-  }
-
-  /// The [StringSink] to which performance logger should copy its output.
-  StringSink get perfLoggerStringSink => _perfLoggerStringSink;
-
-  /// The channel sets itself using this method.
-  set serverChannel(ByteStreamServerChannel serverChannel) {
-    _serverChannel = serverChannel;
-  }
-
-  /// Add a time marker item to the data associated with the [request].
-  void addItemTimeNow(Request request, String name) {
-    var id = request.id;
-    var stat = _statisticsMap[id];
-    if (stat != null) {
-      stat.items.add(
-        _RequestStatisticsItem(
-          name,
-          timeValue: DateTime.now(),
-        ),
-      );
-    }
-  }
-
-  /// The new [request] was received. Record the time when the client sent it,
-  /// and the time when the server received it (now).
-  void addRequest(Request request) {
-    _logRequest(request);
-
-    var id = request.id;
-
-    var clientRequestMilliseconds = request.clientRequestTime;
-    if (clientRequestMilliseconds == null) {
-      return;
-    }
-    var clientRequestTime = DateTime.fromMillisecondsSinceEpoch(
-      clientRequestMilliseconds,
-    );
-
-    var serverRequestTime = DateTime.now();
-
-    _statisticsMap[id] = _RequestStatistics(
-      id,
-      request.method,
-      clientRequestTime,
-      serverRequestTime,
-    );
-  }
-
-  /// The server finished processing a request, and sends the [response].
-  /// Record the time when the response is about to be sent to the client.
-  void addResponse(Response response) {
-    if (!_isNotificationSubscribed) return;
-    if (_serverChannel == null) return;
-
-    var id = response.id;
-    var stat = _statisticsMap.remove(id);
-    if (stat != null) {
-      var responseTime = DateTime.now();
-      _sendLogEntry(ServerLogEntryKind.RESPONSE, stat.toJson(responseTime));
-    }
-  }
-
-  void logNotification(Notification notification) {
-    if (!_isNotificationSubscribed) return;
-    if (_serverChannel == null) return;
-
-    var event = notification.event;
-
-    // Don't log large and often notifications.
-    if (event == 'analysis.errors' ||
-        event == 'completion.availableSuggestions') {
-      return;
-    }
-
-    var params = notification.params;
-    if (params == null) {
-      return;
-    }
-
-    var map = <String, Object>{
-      'event': event,
-    };
-
-    if (event == 'analysis.highlights' ||
-        event == 'analysis.implemented' ||
-        event == 'analysis.navigation' ||
-        event == 'analysis.outline' ||
-        event == 'analysis.overrides') {
-      map['file'] = params['file'] as String;
-    }
-
-    if (event == 'server.status') {
-      var analysis = params['analysis'];
-      if (analysis is Map<String, Object?>) {
-        map['isAnalyzing'] = analysis['isAnalyzing'] as bool;
-      }
-    }
-
-    _sendLogEntry(ServerLogEntryKind.NOTIFICATION, map);
-  }
-
-  void _logRequest(Request request) {
-    if (!_isNotificationSubscribed) return;
-    if (_serverChannel == null) return;
-
-    var method = request.method;
-    var map = <String, Object>{
-      'id': request.id,
-      'method': method,
-    };
-
-    {
-      var clientRequestTime = request.clientRequestTime;
-      if (clientRequestTime != null) {
-        map['clientRequestTime'] = clientRequestTime;
-      }
-    }
-
-    if (method == 'analysis.updateContent') {
-      var filesMap = request.params['files'];
-      if (filesMap is Map<String, Object>) {
-        map['files'] = filesMap.keys.toList();
-      }
-    } else {
-      map = request.toJson();
-    }
-
-    _sendLogEntry(ServerLogEntryKind.REQUEST, map);
-  }
-
-  void _sendLogEntry(ServerLogEntryKind kind, Object data) {
-    if (!_isNotificationSubscribed) return;
-
-    var serverChannel = _serverChannel;
-    if (serverChannel == null) return;
-
-    serverChannel.sendNotification(
-      Notification(
-        'server.log',
-        <String, Object>{
-          'time': DateTime.now().millisecondsSinceEpoch,
-          'kind': kind.toJson(),
-          'data': data,
-          'sdkVersion': _sdkVersion,
-        },
-      ),
-    );
-  }
-}
-
-class _RequestStatistics {
-  final String id;
-  final String method;
-  final DateTime clientRequestTime;
-  final DateTime serverRequestTime;
-  final List<_RequestStatisticsItem> items = [];
-
-  _RequestStatistics(
-    this.id,
-    this.method,
-    this.clientRequestTime,
-    this.serverRequestTime,
-  );
-
-  Map<String, Object> toJson(DateTime responseTime) {
-    var map = {
-      'id': id,
-      'method': method,
-      'clientRequestTime': clientRequestTime.millisecondsSinceEpoch,
-      'serverRequestTime': serverRequestTime.millisecondsSinceEpoch,
-      'responseTime': responseTime.millisecondsSinceEpoch,
-    };
-    if (items.isNotEmpty) {
-      map['items'] = items.map((item) => item.toJson()).toList();
-    }
-    return map;
-  }
-}
-
-class _RequestStatisticsItem {
-  final String name;
-  final DateTime? timeValue;
-
-  _RequestStatisticsItem(this.name, {this.timeValue});
-
-  Map<String, Object> toJson() {
-    final timeValue = this.timeValue;
-    if (timeValue != null) {
-      return {
-        'name': name,
-        'timeValue': timeValue.millisecondsSinceEpoch,
-      };
-    }
-    throw StateError('Unknown value: $name');
-  }
-}
-
-class _ServerLogStringSink implements StringSink {
-  final RequestStatisticsHelper helper;
-
-  _ServerLogStringSink(this.helper);
-
-  @override
-  void write(Object? obj) {
-    throw UnimplementedError();
-  }
-
-  @override
-  void writeAll(Iterable objects, [String separator = '']) {
-    throw UnimplementedError();
-  }
-
-  @override
-  void writeCharCode(int charCode) {
-    throw UnimplementedError();
-  }
-
-  @override
-  void writeln([Object? obj = '']) {
-    helper._sendLogEntry(ServerLogEntryKind.RAW, '$obj');
-  }
-}
diff --git a/pkg/analysis_server/lib/src/utilities/tee_string_sink.dart b/pkg/analysis_server/lib/src/utilities/tee_string_sink.dart
deleted file mode 100644
index 2b715c2..0000000
--- a/pkg/analysis_server/lib/src/utilities/tee_string_sink.dart
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/// A [StringSink] that writes into two other [StringSink]s.
-class TeeStringSink implements StringSink {
-  final StringSink sink1;
-  final StringSink sink2;
-
-  TeeStringSink(this.sink1, this.sink2);
-
-  @override
-  void write(Object? obj) {
-    sink1.write(obj);
-    sink2.write(obj);
-  }
-
-  @override
-  void writeAll(Iterable<dynamic> objects, [String separator = '']) {
-    sink1.writeAll(objects, separator);
-    sink2.writeAll(objects, separator);
-  }
-
-  @override
-  void writeCharCode(int charCode) {
-    sink1.writeCharCode(charCode);
-    sink2.writeCharCode(charCode);
-  }
-
-  @override
-  void writeln([Object? obj = '']) {
-    sink1.writeln(obj);
-    sink2.writeln(obj);
-  }
-}
diff --git a/pkg/analysis_server/test/integration/support/integration_test_methods.dart b/pkg/analysis_server/test/integration/support/integration_test_methods.dart
index 9a707cf..b84f147b 100644
--- a/pkg/analysis_server/test/integration/support/integration_test_methods.dart
+++ b/pkg/analysis_server/test/integration/support/integration_test_methods.dart
@@ -112,16 +112,6 @@
   /// Stream controller for [onServerError].
   late StreamController<ServerErrorParams> _onServerError;
 
-  /// The stream of entries describing events happened in the server.
-  ///
-  /// Parameters
-  ///
-  /// entry: ServerLogEntry
-  late Stream<ServerLogParams> onServerLog;
-
-  /// Stream controller for [onServerLog].
-  late StreamController<ServerLogParams> _onServerLog;
-
   /// Reports the current status of the server. Parameters are omitted if there
   /// has been no change in the status represented by that parameter.
   ///
@@ -2586,8 +2576,6 @@
     onServerConnected = _onServerConnected.stream.asBroadcastStream();
     _onServerError = StreamController<ServerErrorParams>(sync: true);
     onServerError = _onServerError.stream.asBroadcastStream();
-    _onServerLog = StreamController<ServerLogParams>(sync: true);
-    onServerLog = _onServerLog.stream.asBroadcastStream();
     _onServerStatus = StreamController<ServerStatusParams>(sync: true);
     onServerStatus = _onServerStatus.stream.asBroadcastStream();
     _onAnalysisAnalyzedFiles =
@@ -2660,10 +2648,6 @@
         _onServerError
             .add(ServerErrorParams.fromJson(decoder, 'params', params));
         break;
-      case 'server.log':
-        outOfTestExpect(params, isServerLogParams);
-        _onServerLog.add(ServerLogParams.fromJson(decoder, 'params', params));
-        break;
       case 'server.status':
         outOfTestExpect(params, isServerStatusParams);
         _onServerStatus
diff --git a/pkg/analysis_server/test/integration/support/protocol_matchers.dart b/pkg/analysis_server/test/integration/support/protocol_matchers.dart
index 5fd8c3c..ae6e670 100644
--- a/pkg/analysis_server/test/integration/support/protocol_matchers.dart
+++ b/pkg/analysis_server/test/integration/support/protocol_matchers.dart
@@ -1559,35 +1559,12 @@
   'WRITE'
 ]);
 
-/// ServerLogEntry
-///
-/// {
-///   "time": int
-///   "kind": ServerLogEntryKind
-///   "data": String
-/// }
-final Matcher isServerLogEntry = LazyMatcher(() => MatchesJsonObject(
-    'ServerLogEntry',
-    {'time': isInt, 'kind': isServerLogEntryKind, 'data': isString}));
-
-/// ServerLogEntryKind
-///
-/// enum {
-///   NOTIFICATION
-///   RAW
-///   REQUEST
-///   RESPONSE
-/// }
-final Matcher isServerLogEntryKind = MatchesEnum(
-    'ServerLogEntryKind', ['NOTIFICATION', 'RAW', 'REQUEST', 'RESPONSE']);
-
 /// ServerService
 ///
 /// enum {
-///   LOG
 ///   STATUS
 /// }
-final Matcher isServerService = MatchesEnum('ServerService', ['LOG', 'STATUS']);
+final Matcher isServerService = MatchesEnum('ServerService', ['STATUS']);
 
 /// SourceChange
 ///
@@ -3044,14 +3021,6 @@
 final Matcher isServerGetVersionResult = LazyMatcher(
     () => MatchesJsonObject('server.getVersion result', {'version': isString}));
 
-/// server.log params
-///
-/// {
-///   "entry": ServerLogEntry
-/// }
-final Matcher isServerLogParams = LazyMatcher(
-    () => MatchesJsonObject('server.log params', {'entry': isServerLogEntry}));
-
 /// server.setSubscriptions params
 ///
 /// {
diff --git a/pkg/analysis_server/test/socket_server_test.dart b/pkg/analysis_server/test/socket_server_test.dart
index 1c7bb82..e82b6b8 100644
--- a/pkg/analysis_server/test/socket_server_test.dart
+++ b/pkg/analysis_server/test/socket_server_test.dart
@@ -101,13 +101,13 @@
   static SocketServer _createSocketServer(MockServerChannel channel) {
     final errorNotifier = ErrorNotifier();
     final server = SocketServer(
-        AnalysisServerOptions(),
-        DartSdkManager(''),
-        CrashReportingAttachmentsBuilder.empty,
-        errorNotifier,
-        null,
-        null,
-        null);
+      AnalysisServerOptions(),
+      DartSdkManager(''),
+      CrashReportingAttachmentsBuilder.empty,
+      errorNotifier,
+      null,
+      null,
+    );
 
     server.createAnalysisServer(channel);
     errorNotifier.server = server.analysisServer;
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/ServerLogEntry.java b/pkg/analysis_server/tool/spec/generated/java/types/ServerLogEntry.java
deleted file mode 100644
index c590fe5..0000000
--- a/pkg/analysis_server/tool/spec/generated/java/types/ServerLogEntry.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- *
- * This file has been automatically generated. Please do not edit it manually.
- * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
- */
-package org.dartlang.analysis.server.protocol;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import com.google.common.collect.Lists;
-import com.google.dart.server.utilities.general.JsonUtilities;
-import com.google.dart.server.utilities.general.ObjectUtilities;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonPrimitive;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
-import java.util.ArrayList;
-import java.util.Iterator;
-import org.apache.commons.lang3.StringUtils;
-
-/**
- * A log entry from the server.
- *
- * @coverage dart.server.generated.types
- */
-@SuppressWarnings("unused")
-public class ServerLogEntry {
-
-  public static final ServerLogEntry[] EMPTY_ARRAY = new ServerLogEntry[0];
-
-  public static final List<ServerLogEntry> EMPTY_LIST = Lists.newArrayList();
-
-  /**
-   * The time (milliseconds since epoch) at which the server created this log entry.
-   */
-  private final int time;
-
-  /**
-   * The kind of the entry, used to determine how to interpret the "data" field.
-   */
-  private final String kind;
-
-  /**
-   * The payload of the entry, the actual format is determined by the "kind" field.
-   */
-  private final String data;
-
-  /**
-   * Constructor for {@link ServerLogEntry}.
-   */
-  public ServerLogEntry(int time, String kind, String data) {
-    this.time = time;
-    this.kind = kind;
-    this.data = data;
-  }
-
-  @Override
-  public boolean equals(Object obj) {
-    if (obj instanceof ServerLogEntry) {
-      ServerLogEntry other = (ServerLogEntry) obj;
-      return
-        other.time == time &&
-        ObjectUtilities.equals(other.kind, kind) &&
-        ObjectUtilities.equals(other.data, data);
-    }
-    return false;
-  }
-
-  public static ServerLogEntry fromJson(JsonObject jsonObject) {
-    int time = jsonObject.get("time").getAsInt();
-    String kind = jsonObject.get("kind").getAsString();
-    String data = jsonObject.get("data").getAsString();
-    return new ServerLogEntry(time, kind, data);
-  }
-
-  public static List<ServerLogEntry> fromJsonArray(JsonArray jsonArray) {
-    if (jsonArray == null) {
-      return EMPTY_LIST;
-    }
-    ArrayList<ServerLogEntry> list = new ArrayList<ServerLogEntry>(jsonArray.size());
-    Iterator<JsonElement> iterator = jsonArray.iterator();
-    while (iterator.hasNext()) {
-      list.add(fromJson(iterator.next().getAsJsonObject()));
-    }
-    return list;
-  }
-
-  /**
-   * The payload of the entry, the actual format is determined by the "kind" field.
-   */
-  public String getData() {
-    return data;
-  }
-
-  /**
-   * The kind of the entry, used to determine how to interpret the "data" field.
-   */
-  public String getKind() {
-    return kind;
-  }
-
-  /**
-   * The time (milliseconds since epoch) at which the server created this log entry.
-   */
-  public int getTime() {
-    return time;
-  }
-
-  @Override
-  public int hashCode() {
-    HashCodeBuilder builder = new HashCodeBuilder();
-    builder.append(time);
-    builder.append(kind);
-    builder.append(data);
-    return builder.toHashCode();
-  }
-
-  public JsonObject toJson() {
-    JsonObject jsonObject = new JsonObject();
-    jsonObject.addProperty("time", time);
-    jsonObject.addProperty("kind", kind);
-    jsonObject.addProperty("data", data);
-    return jsonObject;
-  }
-
-  @Override
-  public String toString() {
-    StringBuilder builder = new StringBuilder();
-    builder.append("[");
-    builder.append("time=");
-    builder.append(time + ", ");
-    builder.append("kind=");
-    builder.append(kind + ", ");
-    builder.append("data=");
-    builder.append(data);
-    builder.append("]");
-    return builder.toString();
-  }
-
-}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/ServerLogEntryKind.java b/pkg/analysis_server/tool/spec/generated/java/types/ServerLogEntryKind.java
deleted file mode 100644
index 9964b6f..0000000
--- a/pkg/analysis_server/tool/spec/generated/java/types/ServerLogEntryKind.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
- * for details. All rights reserved. Use of this source code is governed by a
- * BSD-style license that can be found in the LICENSE file.
- *
- * This file has been automatically generated. Please do not edit it manually.
- * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
- */
-package org.dartlang.analysis.server.protocol;
-
-/**
- * An enumeration of the kinds of server long entries.
- *
- * @coverage dart.server.generated.types
- */
-public class ServerLogEntryKind {
-
-  /**
-   * A notification from the server, such as "analysis.highlights". The "data" field contains a JSON
-   * object with abbreviated notification.
-   */
-  public static final String NOTIFICATION = "NOTIFICATION";
-
-  /**
-   * Arbitrary string, describing some event that happened in the server, e.g. starting a file
-   * analysis, and details which files were accessed. These entries are not structured, but provide
-   * context information about requests and notification, and can be related by "time" for further
-   * manual analysis.
-   */
-  public static final String RAW = "RAW";
-
-  /**
-   * A request from the client, as the server views it, e.g. "edit.getAssists". The "data" field
-   * contains a JSON object with abbreviated request.
-   */
-  public static final String REQUEST = "REQUEST";
-
-  /**
-   * Various counters and measurements related to execution of a request. The "data" field contains a
-   * JSON object with following fields:
-   *
-   * - "id" - the id of the request - copied from the request.
-   * - "method" - the method of the request, e.g. "edit.getAssists".
-   * - "clientRequestTime" - the time (milliseconds since epoch) at which the client made the request
-   *   - copied from the request.
-   * - "serverRequestTime" - the time (milliseconds since epoch) at which the server received and
-   *   decoded the JSON request.
-   * - "responseTime" - the time (milliseconds since epoch) at which the server created the response
-   *   to be encoded into JSON and sent to the client.
-   */
-  public static final String RESPONSE = "RESPONSE";
-
-}
diff --git a/pkg/analysis_server/tool/spec/generated/java/types/ServerService.java b/pkg/analysis_server/tool/spec/generated/java/types/ServerService.java
index 99f51b9..fed7a98 100644
--- a/pkg/analysis_server/tool/spec/generated/java/types/ServerService.java
+++ b/pkg/analysis_server/tool/spec/generated/java/types/ServerService.java
@@ -15,8 +15,6 @@
  */
 public class ServerService {
 
-  public static final String LOG = "LOG";
-
   public static final String STATUS = "STATUS";
 
 }
diff --git a/pkg/analysis_server/tool/spec/spec_input.html b/pkg/analysis_server/tool/spec/spec_input.html
index aa08d74..cbbe829 100644
--- a/pkg/analysis_server/tool/spec/spec_input.html
+++ b/pkg/analysis_server/tool/spec/spec_input.html
@@ -354,16 +354,6 @@
       </field>
     </params>
   </notification>
-  <notification event="log" experimental="true">
-    <p>
-      The stream of entries describing events happened in the server.
-    </p>
-    <params>
-      <field name="entry">
-        <ref>ServerLogEntry</ref>
-      </field>
-    </params>
-  </notification>
   <notification event="status">
     <p>
       Reports the current status of the server. Parameters are
@@ -5324,7 +5314,6 @@
       An enumeration of the services provided by the server domain.
     </p>
     <enum>
-      <value><code>LOG</code></value>
       <value><code>STATUS</code></value>
     </enum>
   </type>
@@ -5399,94 +5388,6 @@
       </field>
     </object>
   </type>
-  <type name="ServerLogEntry" experimental="true">
-    <p>
-      A log entry from the server.
-    </p>
-    <object>
-      <field name="time">
-        <ref>int</ref>
-        <p>
-          The time (milliseconds since epoch) at which the server created
-          this log entry.
-        </p>
-      </field>
-      <field name="kind" >
-        <ref>ServerLogEntryKind</ref>
-        <p>
-          The kind of the entry, used to determine how to interpret the "data"
-          field.
-        </p>
-      </field>
-      <field name="data">
-        <ref>String</ref>
-        <p>
-          The payload of the entry, the actual format is determined by the
-          "kind" field.
-        </p>
-      </field>
-    </object>
-  </type>
-  <type name="ServerLogEntryKind" experimental="true">
-    <p>
-      An enumeration of the kinds of server long entries.
-    </p>
-    <enum>
-      <value>
-        <code>NOTIFICATION</code>
-        <p>
-          A notification from the server, such as "analysis.highlights".
-          The "data" field contains a JSON object with abbreviated notification.
-        </p>
-      </value>
-      <value>
-        <code>RAW</code>
-        <p>
-          Arbitrary string, describing some event that happened in the server,
-          e.g. starting a file analysis, and details which files were accessed.
-          These entries are not structured, but provide context information
-          about requests and notification, and can be related by "time" for
-          further manual analysis.
-        </p>
-      </value>
-      <value>
-        <code>REQUEST</code>
-        <p>
-          A request from the client, as the server views it, e.g.
-          "edit.getAssists". The "data" field contains a JSON object with
-          abbreviated request.
-        </p>
-      </value>
-      <value>
-        <code>RESPONSE</code>
-        <p>
-          Various counters and measurements related to execution of a request.
-          The "data" field contains a JSON object with following fields:
-        </p>
-        <ul>
-          <li>
-            "id" - the id of the request - copied from the request.
-          </li>
-          <li>
-            "method" - the method of the request, e.g. "edit.getAssists".
-          </li>
-          <li>
-            "clientRequestTime" - the time (milliseconds since epoch) at which
-            the client made the request - copied from the request.
-          </li>
-          <li>
-            "serverRequestTime" - the time (milliseconds since epoch) at which
-            the server received and decoded the JSON request.
-          </li>
-          <li>
-            "responseTime" - the time (milliseconds since epoch) at which the
-            server created the response to be encoded into JSON and sent to the
-            client.
-          </li>
-        </ul>
-      </value>
-    </enum>
-  </type>
 </types>
 <refactorings>
   <h2><a name="refactorings">Refactorings</a></h2>
diff --git a/pkg/analysis_server_client/lib/handler/notification_handler.dart b/pkg/analysis_server_client/lib/handler/notification_handler.dart
index 2d8715a..f7ec39c 100644
--- a/pkg/analysis_server_client/lib/handler/notification_handler.dart
+++ b/pkg/analysis_server_client/lib/handler/notification_handler.dart
@@ -99,9 +99,6 @@
       case SERVER_NOTIFICATION_ERROR:
         onServerError(ServerErrorParams.fromJson(decoder, 'params', params));
         break;
-      case SERVER_NOTIFICATION_LOG:
-        onServerLog(ServerLogParams.fromJson(decoder, 'params', params));
-        break;
       case SERVER_NOTIFICATION_STATUS:
         onServerStatus(ServerStatusParams.fromJson(decoder, 'params', params));
         break;
@@ -279,9 +276,6 @@
   /// notification.
   void onServerError(ServerErrorParams params) {}
 
-  /// The stream of entries describing events happened in the server.
-  void onServerLog(ServerLogParams params) {}
-
   /// Reports the current status of the server. Parameters are
   /// omitted if there has been no change in the status
   /// represented by that parameter.
diff --git a/pkg/analysis_server_client/lib/src/protocol/protocol_constants.dart b/pkg/analysis_server_client/lib/src/protocol/protocol_constants.dart
index 2689506..fd9998b 100644
--- a/pkg/analysis_server_client/lib/src/protocol/protocol_constants.dart
+++ b/pkg/analysis_server_client/lib/src/protocol/protocol_constants.dart
@@ -350,8 +350,6 @@
 const String SERVER_NOTIFICATION_ERROR_IS_FATAL = 'isFatal';
 const String SERVER_NOTIFICATION_ERROR_MESSAGE = 'message';
 const String SERVER_NOTIFICATION_ERROR_STACK_TRACE = 'stackTrace';
-const String SERVER_NOTIFICATION_LOG = 'server.log';
-const String SERVER_NOTIFICATION_LOG_ENTRY = 'entry';
 const String SERVER_NOTIFICATION_STATUS = 'server.status';
 const String SERVER_NOTIFICATION_STATUS_ANALYSIS = 'analysis';
 const String SERVER_NOTIFICATION_STATUS_PUB = 'pub';
diff --git a/pkg/analysis_server_client/lib/src/protocol/protocol_generated.dart b/pkg/analysis_server_client/lib/src/protocol/protocol_generated.dart
index 2dcbd32..ad1ed76 100644
--- a/pkg/analysis_server_client/lib/src/protocol/protocol_generated.dart
+++ b/pkg/analysis_server_client/lib/src/protocol/protocol_generated.dart
@@ -15871,249 +15871,18 @@
   int get hashCode => version.hashCode;
 }
 
-/// ServerLogEntry
-///
-/// {
-///   "time": int
-///   "kind": ServerLogEntryKind
-///   "data": String
-/// }
-///
-/// Clients may not extend, implement or mix-in this class.
-class ServerLogEntry implements HasToJson {
-  /// The time (milliseconds since epoch) at which the server created this log
-  /// entry.
-  int time;
-
-  /// The kind of the entry, used to determine how to interpret the "data"
-  /// field.
-  ServerLogEntryKind kind;
-
-  /// The payload of the entry, the actual format is determined by the "kind"
-  /// field.
-  String data;
-
-  ServerLogEntry(this.time, this.kind, this.data);
-
-  factory ServerLogEntry.fromJson(
-      JsonDecoder jsonDecoder, String jsonPath, Object? json) {
-    json ??= {};
-    if (json is Map) {
-      int time;
-      if (json.containsKey('time')) {
-        time = jsonDecoder.decodeInt(jsonPath + '.time', json['time']);
-      } else {
-        throw jsonDecoder.mismatch(jsonPath, 'time');
-      }
-      ServerLogEntryKind kind;
-      if (json.containsKey('kind')) {
-        kind = ServerLogEntryKind.fromJson(
-            jsonDecoder, jsonPath + '.kind', json['kind']);
-      } else {
-        throw jsonDecoder.mismatch(jsonPath, 'kind');
-      }
-      String data;
-      if (json.containsKey('data')) {
-        data = jsonDecoder.decodeString(jsonPath + '.data', json['data']);
-      } else {
-        throw jsonDecoder.mismatch(jsonPath, 'data');
-      }
-      return ServerLogEntry(time, kind, data);
-    } else {
-      throw jsonDecoder.mismatch(jsonPath, 'ServerLogEntry', json);
-    }
-  }
-
-  @override
-  Map<String, Object> toJson() {
-    var result = <String, Object>{};
-    result['time'] = time;
-    result['kind'] = kind.toJson();
-    result['data'] = data;
-    return result;
-  }
-
-  @override
-  String toString() => json.encode(toJson());
-
-  @override
-  bool operator ==(other) {
-    if (other is ServerLogEntry) {
-      return time == other.time && kind == other.kind && data == other.data;
-    }
-    return false;
-  }
-
-  @override
-  int get hashCode => Object.hash(
-        time,
-        kind,
-        data,
-      );
-}
-
-/// ServerLogEntryKind
-///
-/// enum {
-///   NOTIFICATION
-///   RAW
-///   REQUEST
-///   RESPONSE
-/// }
-///
-/// Clients may not extend, implement or mix-in this class.
-class ServerLogEntryKind implements Enum {
-  /// A notification from the server, such as "analysis.highlights". The "data"
-  /// field contains a JSON object with abbreviated notification.
-  static const ServerLogEntryKind NOTIFICATION =
-      ServerLogEntryKind._('NOTIFICATION');
-
-  /// Arbitrary string, describing some event that happened in the server, e.g.
-  /// starting a file analysis, and details which files were accessed. These
-  /// entries are not structured, but provide context information about
-  /// requests and notification, and can be related by "time" for further
-  /// manual analysis.
-  static const ServerLogEntryKind RAW = ServerLogEntryKind._('RAW');
-
-  /// A request from the client, as the server views it, e.g.
-  /// "edit.getAssists". The "data" field contains a JSON object with
-  /// abbreviated request.
-  static const ServerLogEntryKind REQUEST = ServerLogEntryKind._('REQUEST');
-
-  /// Various counters and measurements related to execution of a request. The
-  /// "data" field contains a JSON object with following fields:
-  ///
-  /// - "id" - the id of the request - copied from the request.
-  /// - "method" - the method of the request, e.g. "edit.getAssists".
-  /// - "clientRequestTime" - the time (milliseconds since epoch) at which the
-  ///   client made the request - copied from the request.
-  /// - "serverRequestTime" - the time (milliseconds since epoch) at which the
-  ///   server received and decoded the JSON request.
-  /// - "responseTime" - the time (milliseconds since epoch) at which the
-  ///   server created the response to be encoded into JSON and sent to the
-  ///   client.
-  static const ServerLogEntryKind RESPONSE = ServerLogEntryKind._('RESPONSE');
-
-  /// A list containing all of the enum values that are defined.
-  static const List<ServerLogEntryKind> VALUES = <ServerLogEntryKind>[
-    NOTIFICATION,
-    RAW,
-    REQUEST,
-    RESPONSE
-  ];
-
-  @override
-  final String name;
-
-  const ServerLogEntryKind._(this.name);
-
-  factory ServerLogEntryKind(String name) {
-    switch (name) {
-      case 'NOTIFICATION':
-        return NOTIFICATION;
-      case 'RAW':
-        return RAW;
-      case 'REQUEST':
-        return REQUEST;
-      case 'RESPONSE':
-        return RESPONSE;
-    }
-    throw Exception('Illegal enum value: $name');
-  }
-
-  factory ServerLogEntryKind.fromJson(
-      JsonDecoder jsonDecoder, String jsonPath, Object? json) {
-    if (json is String) {
-      try {
-        return ServerLogEntryKind(json);
-      } catch (_) {
-        // Fall through
-      }
-    }
-    throw jsonDecoder.mismatch(jsonPath, 'ServerLogEntryKind', json);
-  }
-
-  @override
-  String toString() => 'ServerLogEntryKind.$name';
-
-  String toJson() => name;
-}
-
-/// server.log params
-///
-/// {
-///   "entry": ServerLogEntry
-/// }
-///
-/// Clients may not extend, implement or mix-in this class.
-class ServerLogParams implements HasToJson {
-  ServerLogEntry entry;
-
-  ServerLogParams(this.entry);
-
-  factory ServerLogParams.fromJson(
-      JsonDecoder jsonDecoder, String jsonPath, Object? json) {
-    json ??= {};
-    if (json is Map) {
-      ServerLogEntry entry;
-      if (json.containsKey('entry')) {
-        entry = ServerLogEntry.fromJson(
-            jsonDecoder, jsonPath + '.entry', json['entry']);
-      } else {
-        throw jsonDecoder.mismatch(jsonPath, 'entry');
-      }
-      return ServerLogParams(entry);
-    } else {
-      throw jsonDecoder.mismatch(jsonPath, 'server.log params', json);
-    }
-  }
-
-  factory ServerLogParams.fromNotification(Notification notification) {
-    return ServerLogParams.fromJson(
-        ResponseDecoder(null), 'params', notification.params);
-  }
-
-  @override
-  Map<String, Object> toJson() {
-    var result = <String, Object>{};
-    result['entry'] = entry.toJson();
-    return result;
-  }
-
-  Notification toNotification() {
-    return Notification('server.log', toJson());
-  }
-
-  @override
-  String toString() => json.encode(toJson());
-
-  @override
-  bool operator ==(other) {
-    if (other is ServerLogParams) {
-      return entry == other.entry;
-    }
-    return false;
-  }
-
-  @override
-  int get hashCode => entry.hashCode;
-}
-
 /// ServerService
 ///
 /// enum {
-///   LOG
 ///   STATUS
 /// }
 ///
 /// Clients may not extend, implement or mix-in this class.
 class ServerService implements Enum {
-  static const ServerService LOG = ServerService._('LOG');
-
   static const ServerService STATUS = ServerService._('STATUS');
 
   /// A list containing all of the enum values that are defined.
-  static const List<ServerService> VALUES = <ServerService>[LOG, STATUS];
+  static const List<ServerService> VALUES = <ServerService>[STATUS];
 
   @override
   final String name;
@@ -16122,8 +15891,6 @@
 
   factory ServerService(String name) {
     switch (name) {
-      case 'LOG':
-        return LOG;
       case 'STATUS':
         return STATUS;
     }