simc / logger

Small, easy to use and extensible logger which prints beautiful logs.
https://pub.dev/packages/logger
MIT License
1.07k stars 129 forks source link

Fileoutput/Multioutput is not writing the logs to file #156

Open pushpacbasappa opened 4 months ago

pushpacbasappa commented 4 months ago

Hi I am using MultiOutput to Log to multioutput location. Below is my code to Create logger

List<LogOutput> delegateList = List.empty(growable: true);
  for (var element in logUploadMechanism) {
    delegateList.add(getloggerDelegates(element));
  }
  MultiOutput output = MultiOutput(delegateList);
  logger = Logger(
      printer: LoggerMessager(), output:output);
LogOutput getloggerDelegates(delegateName) {
  switch (delegateName.toLowerCase()) {
    case CONSTANT_STRING_CONSOLE:
      return ConsoleLoggerDelegate();
    case CONSTANT_STRING_FILE:
      return FileLoggerDelegate(file: File("logs.txt"));
    case CONSTANT_STRING_AWS_FIREHOSE:
      return AWSFirehoseLoggerDelegate();
    default:
      return ConsoleLoggerDelegate();
  }
}

created the custom output class for each output method. Here is my fileOutput class

class FileLoggerDelegate extends LogOutput {
  @override
  void output(OutputEvent event) {
    print("FileLoggerDelegate");
    var filePath = 'logs.txt';
    var file = File(filePath).openWrite(mode: FileMode.append);
    for (var line in event.lines) {
      file.writeln(line);
    }
    file.close();
  }
}

File is not creating and also logging is not happening. I have no clue what is going wrong. Suggestion would be helpful.