log_util.dart 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import 'package:flutter/cupertino.dart';
  2. class LogUtil {
  3. static var _separator = "=";
  4. static var _split =
  5. "$_separator$_separator$_separator$_separator$_separator$_separator$_separator$_separator$_separator";
  6. static var _title = "Yl-Log";
  7. static var _isDebug = true;
  8. static int _limitLength = 800;
  9. static String _startLine = "$_split$_title$_split";
  10. static String _endLine = "$_split$_separator$_separator$_separator$_split";
  11. static void init({String title, @required bool isDebug,int limitLength}) {
  12. _title = title;
  13. _isDebug = isDebug;
  14. _limitLength = limitLength??=_limitLength;
  15. _startLine = "$_split$_title$_split";
  16. var endLineStr = StringBuffer();
  17. var cnCharReg = RegExp("[\u4e00-\u9fa5]");
  18. for (int i = 0; i < _startLine.length; i++) {
  19. if (cnCharReg.stringMatch(_startLine[i]) != null) {
  20. endLineStr.write(_separator);
  21. }
  22. endLineStr.write(_separator);
  23. }
  24. _endLine = endLineStr.toString();
  25. }
  26. //仅Debug模式可见
  27. static void d(dynamic obj) {
  28. if (_isDebug) {
  29. _log(obj.toString());
  30. }
  31. }
  32. static void v(dynamic obj) {
  33. _log(obj.toString());
  34. }
  35. static void _log(String msg) {
  36. print("$_startLine");
  37. _logEmpyLine();
  38. if(msg.length<_limitLength){
  39. print(msg);
  40. }else{
  41. segmentationLog(msg);
  42. }
  43. _logEmpyLine();
  44. print("$_endLine");
  45. }
  46. static void segmentationLog(String msg) {
  47. var outStr = StringBuffer();
  48. for (var index = 0; index < msg.length; index++) {
  49. outStr.write(msg[index]);
  50. if (index % _limitLength == 0 && index!=0) {
  51. print(outStr);
  52. outStr.clear();
  53. var lastIndex = index+1;
  54. if(msg.length-lastIndex<_limitLength){
  55. var remainderStr = msg.substring(lastIndex,msg.length);
  56. print(remainderStr);
  57. break;
  58. }
  59. }
  60. }
  61. }
  62. static void _logEmpyLine(){
  63. print("");
  64. }
  65. }